Jsf 托管bean上的事务

Jsf 托管bean上的事务,jsf,jpa,ejb,managed-bean,jta,Jsf,Jpa,Ejb,Managed Bean,Jta,下午好,在我的时区 我正在开发一个使用JavaEE6的WEB应用程序,更确切地说是使用JPA、JSF和EJB。在JSF页面中,我调用一个方法将数据保存到数据库中 @ManagedProperty(value = "#{jndi['ejb/objectEAO']}") private ObjectEAO objectEAO; public void save(){ ... for(Type1 type : list){ if(..){

下午好,在我的时区

我正在开发一个使用JavaEE6的WEB应用程序,更确切地说是使用JPA、JSF和EJB。在JSF页面中,我调用一个方法将数据保存到数据库中

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

 public void save(){
      ...
     for(Type1 type : list){
         if(..){
             ....
            objectEAO.save(type);
          }
      }
  } 
我的问题是: 默认情况下,save方法是事务性的吗?如果第三次插入由于某种原因失败,是否回滚所有进程? objectEAO是一个EJB

提前谢谢。
EJBbean中的

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

确定吗?如果调用ObjectEAO.save()时有一个事务处于活动状态,我会预料到这些更改和登记在该事务中,如果没有,那么它们都会合并到一个事务中,在ObjectEAO.save()返回时提交?@hugh事务在JSF托管bean中不太可能已经处于活动状态(除非使用视图中的开放会话模式)。这意味着托管bean只是在循环中调用EJB服务的客户端,如果使用CMT(EJB的默认行为),则容器在服务调用之前启动事务,并在最后关闭它。没有机制将所有调用连接到一个事务中。