我有一个EJB 3 bean。其中,事务管理是容器管理的,并且需要事务属性。
通过这个bean的一个方法,我实例化了另一个类,它是非事务性的,并调用一个方法来委托持久化任务。在此方法中,我将传递EntityManager实例,该实例由上面的bean中的PersistanceContext注入。现在,当我打电话给EntityManage#persist时,我得到了一个例外,它说:
操作需要在事务中执行。
我怀疑这个异常的原因是因为在这个第二类中没有事务可用。我说的对吗?
如果我不想改变代码流,是否有其他方法来实现这一点?
发布于 2016-02-26 08:58:29
是的,你是对的。需要在事务中调用persist()。在某种程度上,您必须删除持久化的调用。否则,您可能被迫将一些非事务性类转换为企业JavaBeans本身。
https://stackoverflow.com/questions/34526661
复制相似问题