
jfinal的事务核心代码
开始事务
设置自动提交 = false
收集执行的sql
catch exception就rollback 正常就commit
但是如果我现在场景是这样的
@Before(Tx.class)
TestAService{
public void funA(){
//do A db operation
}
}@Before(Tx.class)
TestBService{
public void funB(){
TestAService.funA()
//do B db operation
}
}
业务B自己有数据库操作,而且去调用了业务A的逻辑代码,在业务A中也做了数据库操作,如果业务A成功,根据jfinal的事务代码应该inv.invoke后直接conn.commit了,这时如果B业务失败了rollback就会有脏数据。
这种事务嵌套的情况怎么解决比较好?
项目:JFinal