Java EJB3事务边界:调用非事务类

Java EJB3事务边界:调用非事务类,java,transactions,ejb-3.0,Java,Transactions,Ejb 3.0,我有一个EJB3bean。其中事务管理是容器管理的,事务属性是必需的 我从这个bean的一个方法实例化另一个类,它是非事务性的,并调用一个方法来委托持久化任务。在这个方法中,我传递的是EntityManager实例,该实例由上述bean中的persistencecontext注入。现在,当我调用EntityManage#persist时,我收到一个异常消息,说: 该操作需要在事务中执行 我怀疑导致此异常的原因是因为该事务在第二类中不可用。我说得对吗 如果我不想更改代码流,是否有其他方法可以实现这

我有一个EJB3bean。其中事务管理是容器管理的,事务属性是必需的

我从这个bean的一个方法实例化另一个类,它是非事务性的,并调用一个方法来委托持久化任务。在这个方法中,我传递的是
EntityManager
实例,该实例由上述bean中的
persistencecontext
注入。现在,当我调用
EntityManage#persist
时,我收到一个异常消息,说:

该操作需要在事务中执行

我怀疑导致此异常的原因是因为该事务在第二类中不可用。我说得对吗


如果我不想更改代码流,是否有其他方法可以实现这一点?

是的,您是对的<代码>持久化()需要在事务中调用。在某种程度上,您必须删除该调用才能持久化。否则,您可能会被迫将一些非事务类转换为企业JavaBeans本身。

发布您的代码。这应该行得通。还要发布persistence.xml文件。