私はアプリケーション (JPA/Hibernate、サーブレット、JSP を使用する Java EE、フレームワークなし) を開発していますが、特定のモジュールでは (ORM 直接ソリューションを使用する代わりに) ネイティブ SQL を実装する方が簡単であることがわかりました。まったく問題ありませんが、動的に作成したいです。つまり、永続化プロバイダーを変更した場合に備えて、コードを防弾にしたいのです。
私は次のようなことをしたい:
MySpecificQueryMakerInterface myQueryMaker = new MySpecificQueryMakerFactory(EntityManager.getPersistenceUnit().getProvider());
そしてMySpecificQueryMakerFactory,
、現在使用しているデータベースのネイティブ SQL を実行する適切なクラスを作成します。そうすることで、またはのMySpecificQueryMakerInterface
ように拡張するクラスを作成できるようになり、新しい特定のデータベースを追加するたびにファクトリのみを変更します。MyPostgresQueryMaker
MyOracleQueryMaker
JPA/Hibernateを使用して永続ユニット/データソースの情報を取得する方法はありますか?