使用EntityManager时,已分离的实体将继续存在

时间:2012-09-28 10:13:06

标签: java hibernate jpa jpa-2.0 entitymanager

我有两个实体映射了一对多关系。我在数据库中持有两个对象,ID为1,2

具有相同的类型

方案1.我正在尝试删除带有getEntityManager.remove(object1)的Id'1',显示

传递给分离的实体持久存在于Child实体中..找到了DB记录。

方案2.当我尝试使用getEntityManager.remove(object2)删除Id'2'时删除记录2.

此异常仅发生在同时输入记录之前。

在我关闭并重新打开页面后,我将从Db中删除ID 1,2,并成功运行。

1 个答案:

答案 0 :(得分:0)

  

com.manam.mobee.persist.entity.MobeeLabelTemplate#空

检查mobeeLabel.getMobeeLabelTemplates()内的deleteLabel(),确保他们拥有 ID


修改

您需要更新和删除对象中的ID。在删除mobeeLabel之前,执行findById然后将其删除。应该有一些未插入的mobeeLabelTemplates(或者没有更新 - ids与db不同步)。尝试这样的事情:

MobeeLabel freshMobeeToDelete = (MobeeLabel) getEntityManager().find(MobeeLabel.class, mobeeLabel.getId());
getEntityManager().remove(freshMobeeToDelete);