永続化の抽象化として JPA を使用するモジュラー (プラグインのような) アプリケーションを作成したいと考えており、このアプリケーションはサード パーティによって拡張可能である必要があります。
問題は、このアプリケーションとそのプラグインを他のデータベース/JPA プロバイダーに簡単に移植できるようにすることです。そのため、サード パーティ ベンダーは、使用されている JPA プロバイダー (またはデータベース接続) について何も知ることができず、永続レイヤーを拡張することしかできません。メインアプリの永続化ユニットに保存される新しいエンティティを定義することにより(これにより、新しいデータベースを指すようにすべてのモジュールを再構成することなく、データベースを切り替えることができます)。
JPAでそのようなことはできますか?.NET の nHibernate (およびおそらく Hibernate) を使用すると簡単に実行できますが、Java EE 環境にいるため、JPA に対してプログラミングすることを好みます。