Spring 在视图中的打开会话中启动事务

Spring boot transaction in open session in view

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

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

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

因此它将重用当前线程绑定的一个。

对于普通 Hibernate,您可以检查 SpringSessionContext class. For JPA this is a bit hidden in proxies, but you could check the EntityManagerFactoryUtils class