如果SessionScoped和Stateless方法调用混合,事务会发生什么

时间:2015-08-27 09:07:36

标签: java java-ee ejb cdi stateless

如果DStateless.method4()BSession.method2()发生错误,以下情况会发生什么?我希望CStateless.method3()DStateless.method4()分享相同的交易。

是否允许在 EJB CDI 中进行此类调用?

ASession.method1() (calls)-> CStateless.method3() -> BSession.method2() -> DStateless.method4();
@SessionScoped
class ASession {
   method1();
}

@SessionScoped
class BSession {
   method2();
}

@Stateless
class CStateless {
   method3();
}

@Stateless
class DStateless {
   method4();
}

1 个答案:

答案 0 :(得分:0)

是的,这是允许的。

假设method1()未在事务中运行,则事务边界将在method3()附近。 method4()将使用相同的交易。