JFinal

登录 注册

这个事务怎么没有用呢

final Exception[] e = new Exception[1];
Db.tx(new IAtom() {
    String aJson = getPara("aJson");
    String bJson = getPara("bJson");
    @Override
    public boolean run() throws SQLException {
        try {
            AModel.add(aJson);
            BModel.add(bJson);
            throw new RuntimeException();//测试用
        } catch (Exception e1) {
            e[0] = e1;
            return false;
        }
    }
});

TIM截图20180125095735.png

评论

  • 01-25 11:34
    这么使用事物,不是这样测试的,首先你在使用Db.tx这样的操作如:
    Db.tx(nw IAtom(){
    @Override
    public void run() {
    boolean flag = Amodel.add(aJson);
    if (!flag){
    return flag;
    }
    flag = Bmodel.add(bJson);
    if (!flag) {
    return flag;
    }
    return flag;
    }
    });是需要你去做手动失败判断,所以你在测试时参照我上面写的,你可以将其中一个如Amodel.add(aJson)提交保存异常,就看么效果了
  • 01-25 13:20
    那这样我就不知道什么异常了,而且这样不是没什么区别嘛,就是不能try catch吗?
  • 01-30 22:54
    你可以下载Eova源码看一下,里面有关于Atom事务的用法.
  • 发送