0

我有两个由 Hibernate 管理的实体,实体 1 和实体 2,因此如果保存实体 1 时出错,则不能保存实体 2。因此,这里的工作单元由两个独立的实体组成:要么都被保存,要么都不被保存。我当前的代码如下所示:

public int saveEntity1()
{
 a =1;
 begin session;
 start tx;
 save entity1;
 commit tx;
    when exception 
    rollback tx;
    a=0;
 return a; 
}

 public int saveEntity2()
 {
 a =1;
 begin session;
 start tx;
 save entity2;
 commit tx;
     when exception 
     rollback tx;
     a=0;
 return a; 
 }

在客户端方法中:

 public void submitData()
 {
  int res = Entity1DAO.saveEntity1();
  if(res==1)
  {
  Entity2DAO.saveEntity2();
  }
 }

我可以在同一个事务中保留 2 个实体,所以我不必在客户端方法中使用 if 语句吗?

4

1 回答 1

0

您可以编写另一个方法并在其中开始您的事务。

anotherMethod(){

      try{
      start tx;
      method1();
      method2();
      end tx;
      }catch(Exception e){
        rollBack tx;           
      }
         }
于 2013-10-06T05:24:42.107 回答