Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/github/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Primefaces数据表行键_Primefaces - Fatal编程技术网

Primefaces数据表行键

Primefaces数据表行键,primefaces,Primefaces,我正在使用primefaces 3.5,在以下问题上需要帮助: 我有一个选择模式为single的datatable,所选项目是绑定到一个对象,而不是特定对象属性上的对象。示例代码如下: <p:dataTable id="name" value="#{bean.items}" var="item" selectionMode="single" selection="#{bean.selected}" rowKey="#{item}"> <p:ajax event="rowSele

我正在使用primefaces 3.5,在以下问题上需要帮助:

我有一个选择模式为single的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>

...
在项目创建期间,我不会立即将项目持久化到数据库中,而是维护一个项目列表,并在“保存处理程序”操作期间持久化整个列表


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

这是逻辑上的问题,如果使用自动生成的关键点将方法更改为等于/hashcode,因为使用自动生成的关键点时必须具有候选关键点

,因此对象上没有唯一的关键点是不可能的。我曾考虑使用对象哈希代码,但我必须更改所有实体。我将尝试使用随机生成器值,在持久化阶段之前,我将它设置为null,以便数据库处理它。这个解决方案是最佳实践吗?你有什么建议?阅读好的练习equals和hashcode