0

私はアプリケーション (JPA/Hibernate、サーブレット、JSP を使用する Java EE、フレームワークなし) を開発していますが、特定のモジュールでは (ORM 直接ソリューションを使用する代わりに) ネイティブ SQL を実装する方が簡単であることがわかりました。まったく問題ありませんが、動的に作成したいです。つまり、永続化プロバイダーを変更した場合に備えて、コードを防弾にしたいのです。

私は次のようなことをしたい:

MySpecificQueryMakerInterface myQueryMaker = new MySpecificQueryMakerFactory(EntityManager.getPersistenceUnit().getProvider());

そしてMySpecificQueryMakerFactory,、現在使用しているデータベースのネイティブ SQL を実行する適切なクラスを作成します。そうすることで、またはのMySpecificQueryMakerInterfaceように拡張するクラスを作成できるようになり、新しい特定のデータベースを追加するたびにファクトリのみを変更します。MyPostgresQueryMakerMyOracleQueryMaker

JPA/Hibernateを使用して永続ユニット/データソースの情報を取得する方法はありますか?

4

1 に答える 1

0

EntityManagerFactory#getProperties()経由でアクセスできる永続化ユニットでカスタム プロパティ (クラス名など) を指定するのが最善の方法だと思います。EntityManager#getEntityManagerFactory()を介してファクトリを取得できます。

于 2012-10-01T23:56:28.207 に答える