我有两个实体,entity1和entity2,由Hibernate管理,如果在保存entity1时出现错误,entity2一定不能保存。因此,这里的工作单元由两个单独的实体组成:要么都保存,要么都不保存。我当前的代码如下所示:
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();
}
}我是否可以在同一个事务中持久化这两个实体,这样我就不必在客户端方法中使用if语句了?
发布于 2013-10-06 13:24:42
您可以编写另一个方法并在其中启动事务。
anotherMethod(){
try{
start tx;
method1();
method2();
end tx;
}catch(Exception e){
rollBack tx;
}
}https://stackoverflow.com/questions/19193140
复制相似问题