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