一个事务问题,可以的话,希望能大致解释一下Tx.class的代码思路,表示看不太懂。参考这边的代码http://www.oschina.net/question/2286362_245721
我的代码:
User.java
@Before(Tx.class) public void updateUsersRole(Object userIds, Object roleId){ Db.update("update user set role_id = ? where id in("+userIds+")", roleId); }
UserController.java
public void updRole() { String roleId = getPara("roleId"); String userIds = getPara("userIds"); if(StrKit.isBlank(userIds) || StrKit.isBlank(roleId)){ renderJson(Tools.getResult(400)); return; } Duang.duang(User.class).updateUsersRole(userIds, roleId); renderJson(Tools.getResult(204)); }
有全局action拦截器处理异常
问题:批量update如果有一个没有update成功,并不报异常,也不报错,会继续执行完,那么@Before(Tx.class)是怎么工作的呢?因为不确定它是否真的能正常工作。原本想要做个测试模拟一下,在userIds中携带几个不存在的id,但是修改成功了,没有异常,可能这个模拟比较蠢吧。所以有点慌,真的能工作起来吗?