如果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();
}
最佳答案
是的,这是允许的。
假设method1()
不在事务中运行,则事务边界将围绕method3()
。 method4()
将使用相同的事务。