没有 persistence.xml 的 JPA

Kel*_*ung 5 java orm hibernate jpa persistence.xml

我正在尝试开始使用 Guice Persist 和 JPA,它建议通过 persistence.xml 使用配置。来自以编程方式获取配置的本机 Hibernate 背景,是否有一种简单的方法可以在没有 persistence.xml 文件的情况下配置 JpaPersistModule,或者是否始终必须存在 rump persistence.xml?

如果不存在这样的选项,那么我可能不得不使用 PersistenceProvider (假设“默认”以某种方式解析 persistence.xml )。有关于使用 JPA SPI 的教程吗?

Vla*_*cea 3

假设您有一个PersistenceProvider实现(例如 Hibernate),您可以使用PersistenceProvider#createContainerEntityManagerFactory(PersistenceUnitInfo info, Map map)方法来引导,EntityManagerFactory而不需要persistence.xml.

然而,令人烦恼的是您必须实现该PersistenceUnitInfo接口,因此您最好使用 Spring 或 Hibernate,它们都支持在没有persistence.xml文件的情况下引导 JPA:

this.nativeEntityManagerFactory = provider.createContainerEntityManagerFactory(
    this.persistenceUnitInfo, 
    getJpaPropertyMap()
);
Run Code Online (Sandbox Code Playgroud)

其中PersistenceUnitInfo由 Spring 特定的MutablePersistenceUnitInfo类实现。