美文网首页
spring, hibernate, transacation,

spring, hibernate, transacation,

作者: 天黑请闭眼 | 来源:发表于2019-04-09 10:33 被阅读0次

存在问题的代码如下:

    @Transactional(rollbackFor = Throwable.class)
    public void methodA() {
        A a = new A(1,"new");
        save(A);
        new Thread(()-> {
           A a = getA();
           a.setName("update");
           save(A);
            });
        }
       public A getA() {
           get A by hibernate;
           return A;
        }
}

问题:

  1. getA()获取到的对象A可能为空。因为事务需要等整个方法执行结束后提交。而getA()是异步执行,所有可能save(A)还没提交的情况下,getA()已经执行结束。所以在异步a.setName("update");时存在空指针异常(NPE)。

相关文章

网友评论

      本文标题:spring, hibernate, transacation,

      本文链接:https://www.haomeiwen.com/subject/vawviqtx.html