【问题标题】:Primefaces Datatable RowkeyPrimefaces 数据表行键
【发布时间】:2013-08-02 06:04:42
【问题描述】:

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

我有一个选择模式单一的数据表,所选项目是绑定到对象而不是特定对象属性。示例代码如下:

<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(在持久化时自动在数据库上完成),并且在表上选择行期间,所选项目总是错误的。我可以在没有唯一对象属性的情况下管理正确的行选择吗?

【问题讨论】:

    标签: primefaces


    【解决方案1】:

    这是问题逻辑,如果你使用自动生成的键改变方法equals/hashcode到其他领域,因为当你使用自动生成你必须有候选键

    【讨论】:

    • 所以在对象上没有任何唯一键是不可能的。我正在考虑使用对象哈希码,但我必须更改所有实体。我将尝试使用随机生成器值,并在持久化阶段之前将其设置为 null,以便数据库处理它。这个解决方案是最佳实践吗?你有什么建议?
    • 阅读好的做法equals和hashcode community.jboss.org/wiki/EqualsAndHashCode
    猜你喜欢
    • 2023-03-06
    • 2015-09-12
    • 2014-02-03
    • 2012-11-18
    • 1970-01-01
    • 2014-10-08
    • 2013-09-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多