Jfinal 事务回滚问题
@JFinal 有个事务的问题请教一下,代码在下面,如果执行到第二个if 的结果为false,save方法会回滚吗?
public boolean saveUserCharge(UserCharge uc){
boolean flag=Db.tx(new IAtom() {
@Override
public boolean run() throws SQLException {
boolean success=uc.save();
if(!success){
return false;
}
//账户增加金额
double add_Money=uc.getDouble("money");
double add_sendMoney=uc.getDouble("send_money");
if(add_Money==0&&add_sendMoney==0){
return false;
}
if(uc.getInt("uid")==0||uc.getInt("uid")==null){
return false;
}
return true;
}
});
return flag;
}
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
谢
只要是 IAtom 接口实现类中的 run 方法返回 false 就会被回滚,不管是在第几 if 都一样。但你要先确保事务支持的一些必要条件,例如:mysql 需要 innodb 引擎,不要跨数据源,事务级别要符合代码的需要。