使用两个EntityManger实例时删除实体

时间:2017-03-08 09:27:50

标签: java spring hibernate sql-delete hibernate-entitymanager

我正在尝试删除实体,但我得到了这个例外:

java.lang.IllegalArgumentException: Removing a detached instance

我知道我的问题是我使用了两个不同的EntityManger实例。我寻找解决方案,但我发现的所有解决方案都是这样的:

entityManger.remove(entityManger.merge(entity));

还有另一种解决此问题的方法,而不是使用合并和删除功能吗?

1 个答案:

答案 0 :(得分:2)

异常表示您的实体不受持久性上下文管理。您无法删除未管理的实体。你可以使用

Entity entity = entityManager.getReference(Entity.class, id);
entityManager.remove(entity);

这是更好的,因为你得到懒惰的实例。 对不起我的英文)