Play Framework 事务管理 Bug

发布于 2021-11-29 22:39:59 字数 603 浏览 886 评论 1

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() {
        // 被调用
    }
}






如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

陌若浮生 2021-11-30 22:27:13

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

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

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

回滚改成tx.setRollbackOnly();

结尾加上

tx.commit();

试试

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

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文