現在、JPA 2.0プロジェクト(Eclipse Indigo内)を使用しています。使用する2つの異なるデータベースがあるため、persistence.xmlファイルで2つの<persistence-unit>タグを指定する必要があります。これを行うと、次の警告が表示されます。
複数の永続性ユニットが定義されています-最初の永続性ユニットのみが認識されます
さらに、エンティティを作成して2番目の<persistence-unit>に配置すると、エンティティがpersistence-unitで宣言されていないというエラーが表示されます。
クラス「my.package.MyClass」はマップされていますが、永続性ユニットには含まれていません
したがって、問題は、persistence.xmlファイルで多くの<persistence-unit>タグを宣言(および期待どおりに使用)することは可能ですか?はいの場合、正確な動作を得るために何をする必要がありますか?
ありがとう!
JPAは、persistence.xmlで定義された永続性ユニットの数を制限しません。この警告は、Eclipse IDEのツールの制限について説明しているだけです。これは、例えばここで伝えられます http://www.Eclipse.org/webtools/dali/gettingstarted.php :
現在、Daliはプロジェクトごとに1つの永続性ユニットと1つの永続性XMLファイルのみをサポートしています。 JPAプロジェクトには他の構成も存在できますが、複数の永続性ユニットが使用されている場合、検証とデフォルトの処理が正しく行われない場合があります。
Eclipse IDEでこの作業を行う既知の方法はないと思います。
これはJPAに有効ですが、次のように入力して、プロジェクトごとに(煩わしい)エラー通知をオフにすることもできます。
Project Properties => JPA => Errors/Warnings
Enable project specific settings
をアクティブにし、Type
の下でClass is mapped but is not in a persistence unit
の通知レベルをError
から適切なものに変更します。
Eclipse Lunaの更新:
Lunaで設定の場所と名前が変更されました。新しい場所は次のとおりです。
Project Properties => JPA => Errors/Warnings
チェックEnable project specific settings
Project
グループを展開します
Multiple persistence units defined:
をIgnore
に変更します。