EJB是否创建新事务

时间:2014-03-02 21:09:12

标签: java java-ee jpa

当我使用jpa(eclipselink)执行只读查询时,EJB(glassfish)是否会创建新事务。

1 个答案:

答案 0 :(得分:0)

这取决于@TransactionAttribute默认设置为Required,这意味着如果它未在事务中运行,则会启动一个。

  

TransactionAttribute批注的值由枚举TransactionAttributeType定义。如果未指定TransactionAttribute批注,并且bean使用容器管理的事务划分,则假定REQUIRED事务属性的语义。

Required的语义:

  

如果客户端在客户端与事务上下文关联时调用企业bean的方法,则容器在客户端的事务上下文中调用企业bean的方法。

     

如果客户端在客户端未与事务上下文关联时调用企业bean的方法,则容器会在将方法调用委托给enterprise bean方法之前自动启动新事务。

更多信息: http://docs.oracle.com/javaee/6/api/javax/ejb/TransactionAttribute.html