且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

如何在自定义实现中访问 Spring Data 配置的实体管理器(工厂)

更新时间:2023-09-07 10:19:10

我能找到的***的办法是建立一个约定":我的存储库声明他们期望一个名为 myConventionalPU 的持久性单元来提供.然后,应用程序层将该别名分配给它设置并注入 Spring Data 的实体管理器工厂,因此我的自定义实现可以通过使用该别名通过自动装配接收正确的 EMF.这是我的应用程序上下文的摘录:

The best I could find is to set up a "convention": my repositories declare that they expect a persistence unit named myConventionalPU to be made available. The application layer then assigns that alias to the entity manager factory that it sets up and injects into Spring Data, so my custom implementations can receive the correct EMF with autowiring by using that alias. Here's an excerpt of my application context:

<bean id="myEntityManagerFactory" name="myConventionalPU" 
  class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">
  [...]
</bean>

<jpa:repositories base-package="com.example"
  entity-manager-factory-ref="myEntityManagerFactory"
  transaction-manager-ref="transactionManager" />

在我的自定义实现中:

@PersistenceContext(unitName = "myConventionalPU")
private EntityManager em;

我根据这个要求打开了 DATAJPA-669.

I opened DATAJPA-669 with this requirement.