Primefaces的DataTable Rowkey

问题描述:

我使用primefaces 3.5,我想帮上了以下问题:Primefaces的DataTable Rowkey

我有选择模式的DataTable单和所选择的项目是绑定在对象上,而不是一个具体的对象属性。下面的示例代码:

<p:dataTable id="name" value="#{bean.items}" var="item" selectionMode="single" selection="#{bean.selected}" rowKey="#{item}"> 
<p:ajax event="rowSelect" /> 
<p:ajax event="rowUnselect" /> 
... 
</p:dataTable> 

在项目的创作,我不马上坚持的项目数据库,而不是我维护项目清单和行动保存处理过程中我坚持整个列表。

问题是,对于每个新创建的项目,我都没有生成对象标识(在持久化时自动完成数据库),并且在表格的行选择过程中,所选项目始终是错误的。我可以在没有唯一对象属性的情况下管理正确的行选择吗?

那是问题逻辑,如果使用自动生成的关键变化的方法等于/哈希码到其他领域,因为当你使用一个自动生成的,你必须有候选键

+0

因此,如果没有任何唯一的关键对象是不可能的。我正在考虑使用对象哈希码,但我必须改变我所有的实体。我将尝试使用随机生成器值,在保留阶段之前,我会将其设置为空以便数据库处理它。这个解决方案是否是最佳实践?你建议什么? – user2644660

+0

阅读好习惯等于和哈希码https://community.jboss.org/wiki/EqualsAndHashCode –