我有两个由 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 语句吗?