除了MirMasej答案外,还有一件事:OpenEntityManagerInViewInterceptor
当满足以下条件时,Spring Boot将自动注册一个:
这两种情况在您的情况下都是正确的。该拦截器使实体管理器在请求的整个过程中保持打开状态。自动配置发生在类中JpaBaseConfiguration
。
如果您不希望这种行为,可以将以下属性添加到application.properties文件中:
spring.jpa.open-in-view=false
顺便说一句。这种行为完全独立于事务,仅与实体管理器的生命周期有关。如果两个事务都具有相同的基础实体管理器实例,那么您仍然可以有两个单独的事务,并且没有LazyInitializationException。