我的猜测是那org.hibernate.ejb.HibernatePersistence
不在您的类路径中。那不是在主要的Hibernate jar中,而是在hibernate-entitymanager或类似的jar中。
在调用以下代码之前,可以在代码中进行几个快速实验Persistence.createEntityManagerFactory()
:
System.out.println(getClass().getResource("Meta-INF/persistence.xml"));
和:
System.out.println(Class.forName("org.hibernate.ejb.HibernatePersistence"));
检查Eclipse是否正在复制您的资源也是明智的。请执行“项目”>“清理”,然后在Eclipse构建输出目录中查找以查看persistence.xml是否在期望的位置。有时我会遇到Eclipse由于某种原因而不复制资源的情况。