我创建了一个Role
实体,我想对其进行CRUD操作。除了“D”(删除)操作之外,一切都运行良好。
我使用类似的东西 ObjectDB example code .
如上面引用的网页所述,
An IllegalArgumentException is thrown by remove if the argument is not a an instance of an entity class or if it is a detached entity.
我该怎么做?我做错了什么?
我的Role
实体与User
实体相关(一个角色可以“拥有”多个用户,一个用户只能“拥有”一个角色)。但是,我想要删除的 Role
实例绝不链接到任何事件用户实例。
最佳答案
谢谢你的回答,但是对我帮助不大。虽然我确实认为这与 JTA 有关。 不过我找到了一个解决方案,所以我想在这里分享:
而不是:
public void removeRole(Role aRole) {
entityManager.remove(aRole);
}
我所要做的就是:
public void removeRole(Role aRole) {
entityManager.remove(entityManager.merge(aRole));
}
这样就成功了。去搞清楚。
关于jpa - 调用JPA的remove()时: "A JTA EntityManager cannot use getTransaction()",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5107725/