persistence.xml で永続化ユニットを 1 つ構成していますが、データベースが 2 つあります。これらのデータベースは、スキーマに関して同一です。私がやろうとしていることは次のとおりです。
Persistence.createEntityManagerFactory("unit", primaryProperties);
Persistence.createEntityManagerFactory("unit", secondaryProperties);
プロパティには、さまざまな接続設定 (ユーザー、パスワード、jdbc url など) が含まれています。
私はこれを実際に試してみましたが、プロパティを気にせずに、hibernate (私の jpa プロバイダー) が 2 番目の呼び出しで同じインスタンスを返すようです。
構成を 2 台目のユニットにコピーする必要がありますか?
今まで思っていたものとは違うものに釘付けになりました。上記の呼び出しによって返された EntityManagers (および Factory) は期待どおりに動作getDelegate()
しますが、問題があるようです。休止状態の API に直接依存するアプリケーションでレガシー コードをサポートするには、基礎となるセッションを取得する必要があります。私がしたことは:
final Session session = (Session) manager.getDelegate();
しかし、どういうわけか、2番目のデータベースで動作するentitymanagerを使用している場合でも、1次データベースで動作するセッションを受け取ります。