托管 Bean 上的事务

Transactions on Managed Beans

在我的时区下午好。

我正在开发一个使用 JAVA EE6 的 WEB 应用程序,更准确地说是使用 JPA、JSF 和 EJB。在 JSF 页面中,我调用一个方法将数据保存到 database.In Managed Bean 我有以下方法:

 @ManagedProperty(value = "#{jndi['ejb/objectEAO']}")
 private ObjectEAO objectEAO;

 public void save(){
      ...
     for(Type1 type : list){
         if(..){
             ....
            objectEAO.save(type);
          }
      }
  } 

我的问题是: 默认情况下保存方法是事务性的吗?如果第三次插入由于某种原因失败,是否回滚了所有进程? objectEAO 是一个 EJB。

提前致谢。 最好的问候

save() EJB bean 中的方法是事务性的(假设 CMT - 容器管理事务),而不是 JSF 托管 bean 中的方法。因此,如果一个插入失败,它只会回滚那个操作,而不会影响之前的插入。