在this问题中,你可以看到我有一个问题,我解决了它只改变了hibernate版本。在我看来,如果我可以覆盖HibernatePersistenceProvider
类中的某些方法,我将能够克服它。我创建了自己的扩展它的类,但是如果我在<provider>
类的persistence.xml
标记中将其指定为提供者,我会得到javax.persistence.PersistenceException: No Persistence provider for EntityManager named X
例外。
任何人都可以指导我如何用自己的方式覆盖默认的hibernate提供程序类?
答案 0 :(得分:2)
如果要创建JPA持久性提供程序类并让Persistence.createEntityManagerFactory(props)能够使用它,则需要以Persistence类可以找到它的方式注册提供程序类。您需要一个META-INF \ services \ javax.persistence.spi.PersistenceProvider文件来列出您的PersistenceProvider实现,以便Persistence类可以找到所有提供者来加载persistence.xml文件。
有关更多详细信息,请参阅位于here的JPA规范中的“9.2 Java SE环境中的引导”一章。