EJB 3事务边界:调用非事务类

时间:2015-12-30 09:30:26

标签: java transactions ejb-3.0

我有一个EJB 3 bean。其中事务管理是容器管理的,并且需要事务属性。

从这个bean的一个方法我实例化另一个类,它是非事务性的,并调用一个委托持久化任务的方法。在这个方法中,我传递Shared Stringvar Array store; Maximum(store); 实例,它由上面bean中的EntityManager注入。现在,当我打电话给PersistanceContext时,我得到例外说法:

  

操作需要在事务中执行

我怀疑这个异常的原因是由于第二个类中没有Transaction。我是对的吗?

如果我不想更改代码流,是否可以通过任何方式实现此目的?

1 个答案:

答案 0 :(得分:0)

是的,你是对的。需要在事务中调用persist()。在某种程度上,您必须删除要保留的调用。否则,您可能不得不将一些非事务性类转换为Enterprise JavaBeans。