0

我真的很喜欢 spring 数据存储库的简单性,但是需要使用 hibernate 作为持久性提供程序来保持一致性和其他一些因素。(我正在使用 mongodb 但不使用 mongo 模板)。我注意到的几件事——

  1. HibernateJpaVendorAdapter 使用“org.springframework.orm.jpa.vendor.SpringHibernateEjbPersistenceProvider”

  2. 在通过“org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean”bean 构造EntityManagerFactory 时,不考虑配置了持久单元(“org.hibernate.ogm.jpa.HibernateOgmPersistence”)的提供程序。

  3. 如果为项目配置了多个持久性单元,则没有明显的方法可以为存储库关联持久性单元。

问题:

  1. 有没有办法使用配置的持久性提供程序,而不是默认的?默认提供程序不适用于 mongodb。

  2. 有没有办法将存储库与特定的持久性单元相关联?

4

1 回答 1

0

部分解决方案是

  1. 实现 并返回 in 方法org.springframework.orm.jpa.vendor.AbstractJpaVendorAdapter 的一个实例 org.hibernate.ogm.jpa.HibernateOgmPersistencegetPersistenceProvider()

  2. 在 spring 配置中获取 bean的jpaVendorAdapter属性entityManagerFactory

但是,只要有对 Pageable 的引用,它仍然无法正常工作。一些设计更改可以规避这个问题。

于 2016-02-25T12:41:11.947 回答