0

システムプロパティに基づいて、実行時にJPAプロバイダー(HibernateまたはEclipseLink)を選択する必要があります。

私が理解したことから、プロバイダー名はpersistence.xmlで指定する必要があり、コードでオーバーライドすることはできません。プロバイダー名が指定されていない場合、デフォルトではクラスパスの最初のプロバイダーが使用されます。もう1つの方法は、2つの異なるpersistence.xmlを使用し、システムプロパティの値に基づいてそのうちの1つをロードすることでした。ただし、これも可能ではないようです(代替の「persistence.xml」を使用するJPA)。

これを行う他の方法はありますか?

4

2 に答える 2

1

これを行うには、persistence.xml でそれぞれ異なるプロバイダー名を持つ複数の永続化ユニットを定義することにより、簡単な方法があることがわかりました。

次に、実行時に、EntityManagerFactory の作成中に正しい持続性ユニット名を渡します。

于 2012-06-26T23:53:43.773 に答える
0

もう 1 つの方法は、Persistence を介する代わりに、永続化プロバイダーに直接アクセスすることです。

于 2012-06-27T12:57:57.360 に答える