很长一段时间以来,我一直在寻找答案,然后才来到这里问这个问题。我的问题很简单:使用 JPA Entity Manager API 时无法运行任何 JUnit 测试。看来我的测试没有读取persistence.xml
文件。
当我调用时new Configuration().configure().buildSessionFactory()
,它就像一个魅力,但调用时抛出异常Persistence.createEntityManagerFactory("myapp")
是:
javax.persistence.PersistenceException:在 com.myapp.Test01 的 javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:47) 的 javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:69) 中没有名为 myapp 的 EntityManager 的持久性提供程序。 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>
你知道如何解决这个问题吗?
非常感谢您的帮助。