Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/jpa/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
致电JPA';s remove();JTA EntityManager不能使用getTransaction();_Jpa_Persistence - Fatal编程技术网

致电JPA';s remove();JTA EntityManager不能使用getTransaction();

致电JPA';s remove();JTA EntityManager不能使用getTransaction();,jpa,persistence,Jpa,Persistence,我创建了一个角色实体,我想对它执行CRUD操作。除了“D”(删除)操作外,所有操作都很正常 我使用类似的东西 如上面引用的网页所述 抛出一个IllegalArgumentException 如果参数不是 实体类的实例,或者 是一个独立的实体 我该怎么做?我做错了什么 我的角色实体与用户实体相关(一个角色可以“有”多个用户,一个用户只能有一个角色)。但是,我要删除的角色实例决不会链接到任何活动用户实例。您遇到了什么错误 如果您使用的是JTA,则不能使用EntityManager事务,必须使用JTA

我创建了一个
角色
实体,我想对它执行CRUD操作。除了“D”(删除)操作外,所有操作都很正常

我使用类似的东西

如上面引用的网页所述

抛出一个IllegalArgumentException 如果参数不是 实体类的实例,或者 是一个独立的实体

我该怎么做?我做错了什么


我的
角色
实体与
用户
实体相关(一个角色可以“有”多个用户,一个用户只能有一个角色)。但是,我要删除的
角色
实例决不会链接到任何活动用户实例。

您遇到了什么错误


如果您使用的是JTA,则不能使用EntityManager事务,必须使用JTA事务(EJB,或从conext查找用户事务)。不要将JPA配置为使用JTA,或者使用JTA而不是EM事务。

谢谢您的回答,但这对我没有多大帮助。虽然我确实认为这与JTA有关。 然而,我发现了一个解决方案,因此我想在这里与大家分享:

而不是:

public void removeRole(Role aRole) {
    entityManager.remove(aRole);    
} 
我所要做的就是:

public void removeRole(Role aRole) {
entityManager.remove(entityManager.merge(aRole));   
}
这就是诀窍。算了吧