使用声明式事务处理怎么手动回滚事务

最近会遇到个小问题,就是在批量添加人员登录张号的时候需要去判断这个账号是否存在,存在的话就全部都不能保存,需要提交事务回滚,但是想了一下不怎么到怎么在声明式事务中手动回滚,百度了一下也没相关的,来寻找大神问问.

@Before(Tx.class)
public void saveArea() {
    String[] managerNames = getParaValues("managerName");
    String[] managerAccounts = getParaValues("managerAccount");
    String[] managerPasswords = getParaValues("managerPassword");


    List<Integer> userIds = new ArrayList<>();
    if (managerNames != null) {
        for (int i = 0; i < managerNames.length; i++) {
            //调用server保存用户,并返回保存的id
            Integer userId = service.saveManager(managerNames[i], managerAccounts[i], managerPasswords[i]);
            if (userId != null) {
                userIds.add(userId);
            }
        }
    }

    Ret ret = new Ret();
    ret.set("type", true);
    ret.set("msg", true);
    renderJson(ret);
}


评论区

JFinal

2018-10-22 10:48

手动回滚可以用:
DbKit.getConfig().getConnection().rollback();

还可以使用下面的代码做事务:
Db.tx(() -> {
...
});
在上面的代码中,return false 也会回滚事务

热门反馈

扫码入社