4

私のアプリ (spring + jpa) を @Configuration ベースの spring のアノテーションに変換し、spring app context xml と persistence.xml を取り除こうとしています。ビルド時に使用する openjpa-maven-plugin 2.2.2 以外のすべての機能は、persistence.xml がエラーをスローしないと機能しません。

[エラー] プロジェクト myapp で目標 org.apache.openjpa:openjpa-maven-plugin:2.2.2:enhance (enhancer) を実行できませんでした: 目標 org.apache.openjpa:openjpa-maven-plugin:2.2.2 の実行エンハンサー:enhance に失敗しました: MetaDataFactory を構成できませんでした (conf.newMetaDataFactoryInstance() が null を返しました)。これは、構成プロパティーが見つからなかったことを意味している可能性があります。META-INF/persistence.xml ファイルがあること、それがクラスパスで使用可能であること、または構成に使用しているプロパティ ファイルが使用可能であることを確認してください。Ant を使用している場合は、タスクのネストされた要素の または 属性を参照してください。これは、OpenJPA ディストリビューション jar が破損している場合、またはセキュリティ ポリシーが厳しすぎる場合にも発生する可能性があります。

プラグインの構成は次のとおりです。

      <configuration>
           <includes>**/business/model/*.class</includes>
           <addDefaultConstructor>true</addDefaultConstructor>
           <enforcePropertyRestrictions>true</enforcePropertyRestrictions>
      </configuration>

ただし、persistence.xmlが存在するが、空の永続ユニットしか含まれていない場合は機能します(3つ持っています):

<persistence-unit name="pu1" transaction-type="RESOURCE_LOCAL">
</persistence-unit>

<persistence-unit name="pu2" transaction-type="RESOURCE_LOCAL">
</persistence-unit>

<persistence-unit name="pu3" transaction-type="RESOURCE_LOCAL">
</persistence-unit>

したがって、openjpa-maven-plugin がこれから取得する可能性のある唯一の情報は、実際に必要な場合でも永続ユニット名です。

persistence.xmlなしでビルド時のopenjpaクラス拡張を実装する方法はありますか?

4

0 に答える 0