我试验了一下
Ioc ioc = new NutIoc(new JsonLoader("conf/dao.js"));
final Dao dao = ioc.get(Dao.class);
Trans.exec(new Atom(){
@Override
public void run() {
Trans.DEBUG = true;
Role r1 = dao.fetch(Role.class , 1);
Role r2 = dao.fetch(Role.class , 2);
int i =1;
r1.setDescription("管理员测试");
r2.setDescription("11111111111111");
dao.update(r1);
if(i==1){
try{
dao.update(r2);
i=100/0;
}catch(Exception e){
e.printStackTrace();
}
}
}
});
这个如果在里面捕获异常了,就没办法回滚了,两个update都提交了 如果i=100/0 放在dao.update(r2)上面的话,其中一个事物提交了,这个事物提交的源码我看了下,有点模糊,不知道里面的原理是什么,能请叫兽说说吗。。看不懂。