2

私のコード:

emf = Persistence.createEntityManagerFactory("cassandra_pu");
em = emf.createEntityManager();

persistence.xml を動的に変更して、cassandra_pu ユニットの IP アドレスに変更します。ただし、実行速度が速すぎる可能性があるため、新しいエンティティ マネージャではなく古いエンティティ マネージャが返されます。作成された em エンティティ マネージャーが使用するのに十分かどうかを確認する方法はありますか?

4

2 に答える 2

1

使用中の EJB コンテナーに依存する場合がありますが、一般に、変更persistence.xmlはアプリケーションの次の再デプロイまで反映されません。そのため、再デプロイするまで「古い」エンティティ マネージャーが何度も返されます。

于 2012-10-30T18:44:16.213 に答える
0

一部のプロバイダーでは許可されていますが、これはネイティブ機能です。Eclipselink の refreshMetadata() をチェックして、変更を取得してください。ただし、データベース接続/スキーマのみが異なる場合は、新しい PU を使用する必要があります。ORM.xml を指定して、必要に応じてテーブル名とスキーム名をオーバーライドするだけで、クラスを再利用できます

于 2012-10-30T22:02:14.103 に答える