我对EJB容器中事务,实体管理器和持久化上下文的生命周期感到困惑。
我以这种方式使用entitymanager:
@PersistenceContext(unitName = "..")
private EntityManager em;
在每个无国籍的ejb。
我的问题很简单:
答案 0 :(得分:0)
对于容器管理的事务:
当调用第一个事务方法时,事务(TX)启动。默认情况下,所有EJB方法都是事务性的(相当于TransactionAttributeType.REQUIRED
,这是默认设置)。
默认的TX传播在所有本地EJB调用上保持相同的TX。这相当于所有调用方法的显式TrasactionAttributeType.REQUIRED
当调用链中的第一个方法(为其创建TX的方法)返回时,将提交事务。
通过使用不同的TransactionAttributeTypes注释EJB方法,您可以对TX传播进行细粒度控制。