jpa/maven プロジェクトをテストできません。コマンドラインから「mvn cleant test」を実行すると、「javax.persistence.PersistenceException: No Persistence provider for EntityManager named xxx」というエラーが表示されます。Java SE プロジェクトがあります。
「src/test/resources/META-INF/persistence.xml」に永続化構成があります。また、「src/main/...」についても同じことが言えます。「target/classes/META-INF」でpersistence.xmlを確認できます。それはメインからのものであり、テストを実行するときのテストからのものではありません。いずれにせよどちらも機能するはずなので、これはまだ問題ではありません。初めてJPAを試してみましたが、私が見たように、ファイルは問題ないはずです(場所と内容)。
持続性ユニット名も一致する必要があります。
m2およびその他の必要なプラグインでEclipse(EE)を使用していますが、コマンドラインからmavenを実行しています。プロジェクトにエラーはありません。
// アップデート
「ターゲット/テストクラス」にテストクラスとリソースが必要であることに気付いたので、Mavenビルドを修正しようとしました。コマンドを「mvn clean test-compile test」に変更しましたリソースは正しい場所から見つけることができますが、それでも同じエラーが発生します。
// アップデート
明確にするために、ここに完全なpersistence.xmlがあります
<persistence version="1.0"
xmlns="http://java.sun.com/xml/ns/persistence">
<persistence-unit name="xxx"
transaction-type="RESOURCE_LOCAL">
<provider>my.package.EntityManagerFactoryHelper</provider>
<exclude-unlisted-classes>false</exclude-unlisted-classes>
<properties>
<property name="javax.persistence.jdbc.url" value="jdbc:mysql://localhost:3306/db" />
<property name="javax.persistence.jdbc.driver" value="com.mysql.jdbc.Driver" />
<property name="javax.persistence.jdbc.user" value="yyy" />
<property name="javax.persistence.jdbc.password" value="zzz" />
<property name="eclipselink.ddl-generation" value="DROP_AND_CREATE" />
</properties>
</persistence-unit>
他の投稿からヘルパーの例を取り上げました。基本的に、「xxx」永続ユニットを使用して emf を作成するだけです。これがヘルパークラスです。http://pastebin.com/1GE6uMa1