错误:不推荐使用PersistenceProvider,使用HibernatePersistenceProvider而不是HibernatePersistence
我认为对于像我这样的所有初学者来说这是一个非常普遍的问题。 但我找不到解决方案。 然而。
文件persistence.xml位于src / META-INF / persistence.xml中
org.hibernate.ejb.HibernatePersistenceProvider br.com.caelum.tarefas.modelo.Job
当我运行代码
try { EntityManagerFactory factory = Persistence.createEntityManagerFactory("tarefas"); EntityManager manager = factory.createEntityManager(); manager.close(); factory.close(); System.out.println("Execução com sucesso!"); }catch(Exception _Ex) { System.out.println("Erro: " + _Ex.getMessage()); }
我收到了消息
27/03/2014 11:35:18 org.hibernate.ejb.HibernatePersistence logDeprecation WARN: HHH015016: Encountered a deprecated javax.persistence.spi.PersistenceProvider [org.hibernate.ejb.HibernatePersistence]; use [org.hibernate.jpa.HibernatePersistenceProvider] instead. 27/03/2014 11:35:18 org.hibernate.ejb.HibernatePersistence logDeprecation WARN: HHH015016: Encountered a deprecated javax.persistence.spi.PersistenceProvider [org.hibernate.ejb.HibernatePersistence]; use [org.hibernate.jpa.HibernatePersistenceProvider] instead. 27/03/2014 11:35:18 org.hibernate.ejb.HibernatePersistence logDeprecation WARN: HHH015016: Encountered a deprecated javax.persistence.spi.PersistenceProvider [org.hibernate.ejb.HibernatePersistence]; use [org.hibernate.jpa.HibernatePersistenceProvider] instead. Erro: No Persistence provider for EntityManager named jobs
我做错了什么?
问题出在persistence.xml文件的这一行:
org.hibernate.ejb.HibernatePersistenceProvider
它应该改为
org.hibernate.jpa.HibernatePersistenceProvider
即使persistence.xml中缺少provider标记,由于Hibernate错误,Hibernate将使用旧的ejb提供程序实现,然后它会抱怨(精神分裂症)
aurelije的解决方案是正确的,但是即使你指定了正确的HibernatePersistenceProvider
,Hibernate中的错误也会错误报告问题:错误的所有细节都可以在错误报告HHH-9141中找到并存在于Hibernate EntityManager版本4.3.5.Final中。