Seam Framework如何使用EntityHome处理pages.xml中的复合主键?Seam Framework如何使用EntityHome处理pages.xml中的复合主键?
通常的方法是向一个ID分配给entityHome组件,如:
<page view-id="/team-list.xhtml">
<param name="club" value="#{clubHome.id}" converterId="javax.faces.Integer" validatorId="javax.faces.LongRange" />
</page>
这从URL
http://...?club=12345分配(原子)ID来clubHome ...
但申请使用复合主键的实体的技术是什么?这里的关键是由(roundId,ordinalNumber),给人一种URL
http://...?round=143&group=1 ......
<page view-id="/standings.xhtml">
<param name="group" value="#{groupHome.setId(new GroupId(round???, group???))}" />
</page>
上面是一个新的复合ID分配给groupHome非工作的尝试。这里的问题是如何引用URL参数。 (有没有办法在pages.xml中创建临时变量?)
除此之外,我没有其他办法,只能将原子PK属性分配给一个或多个不同EntityHome组件中的成员变量,当然需要EntityHome与resprective getter和setter子类:
@Name("groupHome")
public class GroupHome extends EntityHome<Group>
{
// temp var
private Integer ordinalNumber;
public void setOrdinalNumber(Integer ordinalNumber)
{
this.ordinalNumber = ordinalNumber;
}
public Integer getOrdinalNumber()
{
return ordinalNumber;
}
}
用作从pages.xml的以下内容:
<page view-id="/standings.xhtml">
<param name="round" value="#{roundHome.id}" />
<param name="group" value="#{groupHome.ordinalNumber}" />
</page>
所以,这里有什么最好的做法是什么?我无法在“Seam in Action”中找到任何使用复合主键的例子,也不能在网上找到任何例子。
你去哪儿了? :)(+1) – 2010-10-26 16:54:39
@Kawu当你有一个复合主键时,喜欢使用除** id **之外的其他名字 – 2010-10-26 16:55:02
@Pascal Thivent没有空闲时间。我正在研究一个耗费我时间的法人项目。它是开源的。我会在发布时通知你。不管怎样,谢谢你。 – 2010-10-26 16:59:15