有关setFlushMode对注入的容器管理的EntityManager的影响的问题

时间:2011-08-18 03:30:22

标签: ejb jpa-2.0 ejb-3.1 entitymanager

我正在使用EJB 3.1,我有一个无状态会话Bean,我正在注入一个EntityManager。 EJB的一个方法调用entityManager.setFlushMode(FlushModeType.COMMIT)。

两个问题:

1)我认为这会影响属于此事务的所有EJB。因此,例如,如果此SSB在另一个使用REQUIRED事务属性的EJB上调用另一个方法,并且EJB也注入了EntityManager,那么该方法使用的entityManager也将处于COMMIT刷新模式。这是真的还是你必须在被调用的方法中明确设置刷新模式,即使它在同一个TX中?

2)在实体管理器上设置flushMode会影响注入其他EJB但在不同事务中使用的相同PU的任何其他实体管理器吗?我不会假设。

日Thnx。

1 个答案:

答案 0 :(得分:3)

您的假设是正确的。是的,注入的EntityManager上的setFlushMode会影响同一事务中PU的所有EM。不,它不会影响其他交易中的EM。请参阅此答案:EJB 3.1 Transaction, EntityManager

相关问题