我的应用程序部署在WildFly 8.2上。
我正在处理一批。
会话EJB中的方法A需要新的注释。
在它内部,我在同一个EJB上调用另一个方法,方法B,另一个方法需要新的注释。
此方法B抛出运行时异常。方法A捕获它并继续。
但是处理JPA更新的下一行给出了transaction required异常。
基本上,我不知道为什么带有必需的New注解的方法B会影响方法A。
它是JPA Dao松散事务上的实体管理器。
如果方法B中发生异常,我如何让方法B独立运行,并且只回滚方法B。
发布于 2016-04-10 17:04:46
您可以使用会话上下文通过EJB容器调用methodB,这样事务注释就可以生效。
您的EJB应该如下所示:
@Resource
SessionContext sessionCtx;
.
.
.
@TransactionAttribute(TransactionAttributeType.REQUIRES_NEW)
public void methodA() {
<Your-EJB-Interface> ejbObject = sessionCtx.getBusinessObject(<Your-EJB-Interface>.class);
ejbObject.methodB();
}
@TransactionAttribute(TransactionAttributeType.REQUIRES_NEW)
public void methodB....
https://stackoverflow.com/questions/36521089
复制相似问题