【问题标题】:Spring boot transaction in open session in view视图中打开会话中的 Spring Boot 事务
【发布时间】:2022-01-24 18:03:54
【问题描述】:

默认情况下,Spring Boot 使用视图模式中的打开会话。

是说每次用@Transactional注解的方法都是使用请求开始时创建的实体管理器还是每次都新建一个?

【问题讨论】:

    标签: spring-boot hibernate


    【解决方案1】:

    除非使用REQUIRES_NEW,否则事务将重新使用现有线程绑定EntityManagerSession(取决于您使用JPA 还是普通Hibernate)。视图中的打开会话将在请求开始时打开并绑定一个。

    所以它会重用当前线程绑定的一个。

    对于普通的 Hibernate,您可以查看 SpringSessionContext class。对于 JPA,这有点隐藏在代理中,但您可以查看 EntityManagerFactoryUtils class

    【讨论】:

      猜你喜欢
      • 2012-05-26
      • 2021-09-25
      • 2022-10-03
      • 1970-01-01
      • 2011-04-11
      • 2010-12-23
      • 1970-01-01
      • 1970-01-01
      • 2014-11-23
      相关资源
      最近更新 更多