交叉事务

    Jul 10, 2017 10:38:44 AM

    1. 函数 A
    2. 数据操作 1;
    3. 数据操作 2;
    4. 函数 B
    5. 数据操作 3;
    6. -> 函数 A();
    7. 函数 C
    8. 数据操作 4;
    9. -> 函数 A();

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

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

    1. 函数 A
    2. Trans.exec(new Atom(){
    3. public void run(){
    4. 数据操作 1;
    5. 数据操作 2;
    6. }
    7. });
    8. 函数 B
    9. Trans.exec(new Atom(){
    10. public void run(){
    11. 数据操作 3;
    12. -> 函数 A();
    13. }
    14. });
    15. 函数 C
    16. Trans.exec(new Atom(){
    17. public void run(){
    18. 数据操作 4;
    19. -> 函数 A();
    20. }
    21. });

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

    本页面的文字允许在知识共享 署名-相同方式共享 3.0协议GNU自由文档许可证下修改和再使用。

    原文: http://nutzam.com/core/dao/transaction_complex.html