我打电话给
SomeEntity someEntity = em.find(EntityPK.Class,entityPK);
em.Remove(entityPK);
然后坚持使用相同的主键
em.persist(someEntity)
抛出具有主键的实体已存在的SQLIntegrityContraintViolatinException。
如果我改变了
someEntity.setName("Test");
然后用
返回同一个实体someEntity = em.find(EntityPK.Class,entityPK);
它让我用
更新了someEntity someEntity.getName()
返回'测试'。
someEntity中的更改会在未反映删除时反映出来。
我是JPA的新手,我们将不胜感激。
答案 0 :(得分:1)
重新制作物品通常不是一个好主意。最好为新对象使用新id,例如生成的id。
如果你必须转发和反对,尝试在单独的事务中执行它,或者至少在删除后调用flush()以首先从数据库中删除它。