ここに来てこの質問をする前に、私はかなり長い間答えを探していました。私の問題は非常に単純です。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>
この問題を解決する方法はありますか?
ご助力ありがとうございます。