9

私はデータ モデルに JPA 永続性を使用し、Eclipselink を永続性プロバイダーとして使用しています。モジュラー (OSGi) アプリケーションがあり、モジュールの 1 つに、標準データ モデルと、パッケージのすべてのエンティティを自動的に含める永続ユニットが含まれています。永続化プロバイダーは別のモジュールにあり、うまく機能します。

ここで、永続化ユニットにいくつかのエンティティを追加する 3 番目のモジュールが必要です。それ、どうやったら出来るの?私が使用していないSpringに固有のように見えるこの解決策を見つけました。そのアプローチの要約は、永続化ユニットの処理にフックし、ファイル<class>からエントリを手動でマージするポスト プロセッサを作成することです。persistence.xml

永続ユニットをマージすることは可能ですか? 誰でも回避策を提案できますか?

4

2 に答える 2

5

まず、 Dynamic-JPAのリンクは、エンティティを動的に更新する方法を提供します。最初にこのオプションを検討します。


OSGi からの別のリンク ( PDF ) には、永続性と有用な EntityManagerFactory を扱うトップレベルの図がいくつかあります。


興味深いアプローチですが、無関係かもしれません

これは、persistence.xml ファイルを使用せずにプログラムで永続化ユニットを作成するためのリンクです (これは実際にはできませんが、回答は問題に対する洞察を提供します)。philk は、persistence.xml ファイルからプロバイダーを削除する方法について提案しています。この方法に従えば、エンティティを特定の持続性ユニットに結合できる場合があります。

「Hibernate の古き良き時代には、セッションを作成してその場でクラスを追加することができました。SUN の JPA 仕様には含まれていないようです。ただし、persistence.xml からプロバイダーを完全に削除して渡しました。 EMF のプロパティを使用して EL に. これはうまくいくようです. persistence.xml に残っているのはクラスの仕様だけです. EL でクラス名を解析するメソッドを公開し、そのための ClassDescriptor を EL JPA プロバイダーのパブリック メソッドとして作成します。"


最後に、ハック的な解決策にたどり着きます。すでに提案されているように、後から persistence.xml ファイルを編集するだけです。これはうまくいくと思いますが(試したことはありませんが)、間違いなくオプションです。

于 2009-08-06T21:16:27.213 に答える
0

WAR ファイルに persistence.xml ファイルが含まれるセットアップがあります。ここですでに説明したソリューションは、JAR、WAR、および EAR で使用できるはずです。JPA 2.0: エンティティークラスを PersistenceUnit に *別の jar から * 自動的に追加する

于 2014-03-26T15:17:00.557 に答える