JFinal 事务怎么控制?

虽然也在用JFinal 但是对于事务控制知道的甚少,现在有个需求就是 保存新数据之前删除之前已有的数据。

开始是在controller 的action 上添加的@Before(Tx.class)

内部代码 分两步执行 Model的删除 和 Model保存 操作,发现执行删除方法后,后续代码出现异常,数据并没有回滚。

所以我想把删除和保存操作 一并放入了Model中的一个方法体内,在这个方法上也加上了@Before(Tx.class) 现在就是下面这个图:

image.png

删除操作执行完 我使用1/0 制造异常,然而还是没有回滚。

项目里 现在只有controller 和 model 两层,不知道事务怎么控制,恳请大神们指点一下,感谢!

评论区

66666666

2018-09-13 12:31

还有一个方法,就是在方法里面写 boolean result = Db.tx(new IAtom() {

@Override
public boolean run() throws SQLException {
try {
Db.delete("delete from t_userinfo where name='66");
int a = 1/(1-1);
return true;
} catch (Exception e) {
// TODO: handle exception
return false;
}
}
});
这样子也是可以回滚

热门反馈

扫码入社