在具有复合主键的表上进行单元格内部编辑

时间:2012-03-15 08:30:55

标签: primefaces

我正在使用primefaces 3.2 in-cell编辑组件来更新具有复合主键的oracle DB表。用户应该能够编辑主键值,但是这样使用

em.merge(entity);

我收到以下错误

Exception [EclipseLink-7251] (Eclipse Persistence Services - 2.3.0.v20110604-r9504): org.eclipse.persistence.exceptions.ValidationException
Exception Description: The attribute [voce] of class [entity.competenze_distaccati.CompetenzeDistaccatiPK] is mapped to a primary key column in the database. Updates are not allowed.

......这对我来说听起来很合理。问题是:如何让用户更改主键值? 使用更改的值调用rowEdit事件侦听器,因此我不知道哪个是执行删除插入的原始记录。

1 个答案:

答案 0 :(得分:2)

允许修改主键不正确处理数据的方法。相反,允许删除并再次使用所需值添加记录。这样,您将遵循标准,并且您的问题也会得到解决。