默认情况下,spring-data是否始终在同一请求中使用相同的持久性上下文?

时间:2018-06-25 22:57:05

标签: spring jpa dependency-injection spring-data-jpa spring-data

一个例子是,如果我的spring控制器具有两个Autowired服务,并且两个服务都具有一个也由spring控制的PersistenceContext(并且我什么也不做),默认情况下,每个请求中都将共享相同的上下文吗?

1 个答案:

答案 0 :(得分:0)

否,他们将使用不同的密码。持久性上下文(IF(OR(HOUR(B2) = 3; HOUR(B2) = 12); "xx"; "yes") )被定义为JPA中的线程绑定概念。因此,每个请求将为每个新请求看到EntityManager的新实例。

对于注入了EntityManager的Singleton Spring组件,Spring将自动为您连接一个代理实例,以便可以轻松交换后备实例。这是Spring容器的核心功能,在Spring Data JPA中不需要任何功能(请参见文档previous answer)。