jpa - 调用JPA的remove()时: "A JTA EntityManager cannot use getTransaction()"

标签 jpa persistence

我创建了一个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/

相关文章:

java - JPA CascadeType 仍然无法正常工作

java - GenerationType.TABLE : Big numbers in the data base

java - Hibernate 查询获取日期记录忽略时间戳

apache-spark - HDFS 检查点目录出现意外的 "Tachyon file system can not be instantiated"

algorithm - Golang程序中的随机函数和持久化

ios - NSCoding VS 核心数据

mysql - 将 @jointable 与所有非唯一列一起使用

java - 是否可以拥有远程管理的实体?

java - 在对象图中检测到循环,这将导致无限深的 xml

sql - 您将如何在您首选的 db 范式中为您的模型实现修订控制系统?