在相当长的一段时间,我一直在寻找一个答案来这里之前,询问这个问题。 我的问题很简单:使用JPA实体管理器API时,我不能运行任何JUnit测试。 看来,我的测试是不读persistence.xml
文件。
当我打电话new Configuration().configure().buildSessionFactory()
它就像一个魅力,但一个例外是调用时抛出Persistence.createEntityManagerFactory("myapp")
是:
javax.persistence.PersistenceException:在com.myapp.Test01没有持久性提供EntityManager的一个名为MyApp在javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:69)在javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:47)。 setUpBeforeClass(Test01.java:22)
我JavaSE的项目有以下结构:
myapp
++src/main/java
++com.myapp.model
++// My entity classes are here
++src/test/java
++com.myapp
++Test01.java
++src/main/resources
++hibernate.cfg.xml
++META-INF
++persistence.xml
和persistence.xml
的样子:
<?xml version="1.0" encoding="UTF-8"?>
<persistence xmlns="http://java.sun.com/xml/ns/persistence"
version="2.0">
<persistence-unit name="myapp" transaction-type="RESOURCE_LOCAL">
<provider>org.hibernate.ejb.HibernatePersistence</provider>
<properties>
<property name="hibernate.ejb.cfgfile" value="hibernate.cfg.xml"></property>
</properties>
</persistence-unit>
</persistence>
你有什么想法如何解决这个问题呢?
非常感谢您的帮助。