gpt4 book ai didi

java - 实体必须被管理才能调用删除?

转载 作者:行者123 更新时间:2023-12-01 16:56:01 25 4
gpt4 key购买 nike

public Person deletePerson(Person entity) {
EntityManager ems = emf.createEntityManager();

try {
ems.getTransaction().begin();
ems.merge(entity);
ems.remove(entity);
ems.getTransaction().commit();
} finally {
ems.close();
}
return entity;
}

它不起作用,我不知道为什么?给我 java.lang.IllegalArgumentException

最佳答案

它不起作用,因为删除操作需要将托管实体传递给它。您可以像这样修改代码以使其正常工作:

 entity = ems.merge(entity);
ems.remove(entity);

因为merge返回管理实体实例,可以调用remove与它返回的对象一起使用,因为它是由 JPA 管理的(您传递给 merge 的对象不受影响,这就是您的代码失败的原因)。

关于java - 实体必须被管理才能调用删除?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32849786/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com