我有以下托管bean:
@ManagedBean
@ViewScoped
public class View {
@EJB
private Bar bar
public void foo() {
bar.do();
bar.do();
bar.do();
}
}
这是否会导致3次单笔交易(每次bar.do()
次调用一次)或这会导致1次交易(foo()
)?
答案 0 :(得分:2)
您将有3个单独的事务,因为EJB容器在bean方法的开头启动事务,并在方法完成时结束(这是Container Managed Transactions自动完成的,Bean Managed Transactions你手动执行此操作。)
答案 1 :(得分:0)
如果您只想使用1个事务和多个EJB方法调用,那么使用会话外观设计模式。使用CMT(容器管理事务)创建一个facae bean,以在其自己的事务中调用其他bean。 2.,使用BMT(Bean管理事务)