java - 使用 EntityManager 的两个实例时删除实体

标签 java spring hibernate sql-delete hibernate-entitymanager

我正在尝试删除实体,但出现此异常:

java.lang.IllegalArgumentException:删除分离的实例

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

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

除了使用合并和删除功能之外,还有另一种方法可以解决这个问题吗?

最佳答案

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

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

这更好,因为你得到了惰性实例。 抱歉我的英语)

关于java - 使用 EntityManager 的两个实例时删除实体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42667483/

相关文章:

java - 从链表java中删除元素

java - 在拦截方法上配置拦截器(代理)

java - Spring Boot 在启动时使用构造函数参数初始化 bean

java - 为什么需要为多值关联使用 Set 覆盖 equals() 和 hashcode()?

hibernate - 使用referenceColumnName时OnetoOne双向关联错误

java - 从 Maven 导入 Selenium Webdriver 到 Intellij IDEA

java - 为什么采用 J2EE 1.4 和 Java EE 5 命名?

java - 在我的选择框中显示印地语编码值

spring - .RELEASE 在 Spring Framework 版本中是什么意思

java - 关于mysql、java日期和时区的困惑