为JPA / Hibernate提供您自己的提供程序类

时间:2014-03-05 10:04:50

标签: java hibernate jpa

this问题中,你可以看到我有一个问题,我解决了它只改变了hibernate版本。在我看来,如果我可以覆盖HibernatePersistenceProvider类中的某些方法,我将能够克服它。我创建了自己的扩展它的类,但是如果我在<provider>类的persistence.xml标记中将其指定为提供者,我会得到javax.persistence.PersistenceException: No Persistence provider for EntityManager named X例外。

任何人都可以指导我如何用自己的方式覆盖默认的hibernate提供程序类?

1 个答案:

答案 0 :(得分:2)

如果要创建JPA持久性提供程序类并让Persistence.createEntityManagerFactory(props)能够使用它,则需要以Persistence类可以找到它的方式注册提供程序类。您需要一个META-INF \ services \ javax.persistence.spi.PersistenceProvider文件来列出您的PersistenceProvider实现,以便Persistence类可以找到所有提供者来加载persistence.xml文件。

有关更多详细信息,请参阅位于here的JPA规范中的“9.2 Java SE环境中的引导”一章。