这个事务怎么没有用呢

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

评论区

lyh061619

2018-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)提交保存异常,就看么效果了

LXA300T

2018-01-25 13:20

那这样我就不知道什么异常了,而且这样不是没什么区别嘛,就是不能try catch吗?

Jieven

2018-01-30 22:54

你可以下载Eova源码看一下,里面有关于Atom事务的用法.