交叉事务

优质
小牛编辑
134浏览
2023-12-01
函数 A
    数据操作 1;
    数据操作 2;

函数 B
    数据操作 3;
    -> 函数 A();

函数 C
    数据操作 4;
    -> 函数 A();

则称,A 为 B,C 的交叉操作。
如果,A,B,C 都需要保证事务性,则 A 为 B, C 的交叉事务

Nutz.Dao 的原子操作支持事务嵌套,所以你可以这么实现这三个函数:

函数 A
    Trans.exec(new Atom(){
        public void run(){
            数据操作 1;
            数据操作 2;
        }
    });

函数 B
    Trans.exec(new Atom(){
        public void run(){
            数据操作 3;
            -> 函数 A();
        }
    });

函数 C
    Trans.exec(new Atom(){
        public void run(){
            数据操作 4;
            -> 函数 A();
        }
    });

那么,这三个函数都是事务性的。
就是说,只有最外层的事务是起作用的,被包裹的事务会“融化”在上层事务里