我有一个EJB 3 bean。其中事务管理是容器管理的,并且需要事务属性。
从这个bean的一个方法我实例化另一个类,它是非事务性的,并调用一个委托持久化任务的方法。在这个方法中,我传递Shared Stringvar Array store;
Maximum(store);
实例,它由上面bean中的EntityManager
注入。现在,当我打电话给PersistanceContext
时,我得到例外说法:
操作需要在事务中执行
我怀疑这个异常的原因是由于第二个类中没有Transaction。我是对的吗?
如果我不想更改代码流,是否可以通过任何方式实现此目的?
答案 0 :(得分:0)
是的,你是对的。需要在事务中调用persist()
。在某种程度上,您必须删除要保留的调用。否则,您可能不得不将一些非事务性类转换为Enterprise JavaBeans。