开发者社区> 问答> 正文

Play Framework 事务管理 Bug? 400 报错

Play Framework 事务管理 Bug? 400 报错

Play framework 1.2.7

在一个请求中, 调用本类的修改数据方法, 事务正常提交、回滚。但是在调用其它类的修改方法时,其它类的事务会自动提交,且不能在发起调用类中进行回滚。求大神指教!!!

class A {
  
    public static void method1() {
        // 
        method3();
        // 调用B类的修改方法
        B.method2();

        // 执行回滚
        JPA.setRollbackOnly();
        // 结果 method3 中回滚成功, B.method2 中无法回滚

    }
     
    public static void method3() {
    }


}

class B {
    public static void method2() {
        // 被调用
    }
}






展开
收起
爱吃鱼的程序员 2020-06-05 12:12:35 371 0
1 条回答
写回答
取消 提交回答
  • https://developer.aliyun.com/profile/5yerqm5bn5yqg?spm=a2c6h.12873639.0.0.6eae304abcjaIB

    我刚刚测试了下是都可以回滚的,不过我是启动服务器测试的。

    你可以试下在method1中的开头加上

    EntityTransaction tx = JPA.em().getTransaction();

    回滚改成tx.setRollbackOnly();

    结尾加上

    tx.commit();

    试试

    顺便问下setRollbackOnly和rollBack啥区别啊?

    2020-06-05 12:12:48
    赞同 展开评论 打赏
问答分类:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载