嗯,我知道我必须从对象中选择一个唯一的字段,例如 ID。那么我的 rowKey 是“item.id”。当加载数据表中的所有iten时,这工作得很好,但是如果我添加一个带有空ID的新项目(该对象尚未持久化在数据库中),它不会出现在我的数据表中。
这个问题有什么解决办法吗?我只能使用 ID 作为 rowKey,但有时我需要添加一个具有 NULL ID 的新对象(因为这还没有保留在数据库中)。
看我的代码:
<p:dataTable rowKey="#{item.id}" var="item"
value="#{orcamentoMB.itens}"
emptyMessage="Não foi encontrado nenhum registro"
id="dataTableItens"
selection="#{orcamentoMB.selectedItemOrcamento}"
selectionMode="single" rowIndexVar="rowIndex"
rowStyleClass="#{(rowIndex mod 2) eq 0 ? 'first-row' : 'second-row'}">
最佳答案
然后使用另一个唯一标识符。也许是 hashCode()
甚至是 toString()
?
rowKey="#{not empty item.id ? item.id : item.hashCode()}"
关于jsf - 在带有新实体的 primefaces dataTable 中使用 rowKey,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18797241/