我正在使用spring-boot-starter-data-jpa开发Spring-Boot应用程序。我无法理解应该使用哪个注释来注入EntityManager?
@Autowired
或@PersistenceContext
我知道@PersistenceContext
是JPA批注,而@Autowired
属于Spring。但是在内部如何发挥作用呢?
我已经看过this。但无法理解确切原因。
答案 0 :(得分:1)
数据源是数据源。例如,这可能是数据库。
如果需要多个数据源,一个选择是在persistence.xml文件中定义它们。在这里您可以定义多个名称,并按名称将其分开。
然后,@PersistenceContext将为您注入更多想要的细节。在这里,您可以通过定义的名称选择哪个数据源。也有其他选择。 https://docs.oracle.com/javaee/7/api/javax/persistence/PersistenceContext.html
如果使用@Autowire,则只是按bean名称注入可用的持久性上下文。如果您有2个或更多持久性上下文,则可能由于歧义而失败。