JPA:删除分离的实例

Sac*_*n J 4 spring hibernate jpa hibernate-annotations jpa-2.0

我从typedQuery对象获取resultList.我从该列表中获取第一个对象.

例如. LoginAttempt loginAttempt = loginAttempts.get(0);

何时,我更新此对象并调用entityManager.merge(loginAttempt);它已成功更新.

但是当我要删除这个对象时,它给了我异常,即. java.lang.IllegalArgumentException: Removing a detached instance.

任何建议.谢谢 :)

实际上,我只想删除.我只是提到合并,因为我感到困惑,合并正在工作,但删除不起作用...

Pio*_*cki 10

合并实际上是有效的,因为它的目的是从分离状态转换为托管状态.另一方面,删除只能在托管实体上工作.

如果您有托管实体,则可以em.remove(-)在其上调用.
如果你有一个分离的实体,你应该调用Object managed = em.merge(detached)然后em.remove(managed).您必须在相同的事务边界内执行此操作.