28.2. 代替の JPA プロバイダの使用
Seam にはデフォルトの JPA プロバイダとして Hibernate がパッケージ化され設定されています。 別の JPA プロバイダを使用する場合は Seam でそのプロバイダを設定する必要があります。
注記
これは対応策です。Seam の今後のバージョンでは、 カスタムな永続プロバイダの実装を追加しない限り、 代替の JPA プロバイダを使用するために設定変更を行う必要はなくなる予定です。
Seam に JPA プロバイダを認識させる方法は 2 種類あります。 1 つ目の方法はアプリケーションの
components.xml を更新し、 汎用 PersistenceProvider が Hibernate バージョンより優先されるようにします。このファイルに次を追加するだけです。
<component name="org.jboss.seam.persistence.persistenceProvider"
class="org.jboss.seam.persistence.PersistenceProvider"
scope="stateless">
</component>
<component name="org.jboss.seam.persistence.persistenceProvider"
class="org.jboss.seam.persistence.PersistenceProvider"
scope="stateless">
</component>
JPA プロバイダの非標準の機能を利用したい場合は
PersistenceProvider の独自の実装を記述する必要があります (HibernatePersistenceProvider を起点として利用できます)。次のように Seam にこの PersistenceProvider を使うよう指示します。
<component name="org.jboss.seam.persistence.persistenceProvider"
class="org.your.package.YourPersistenceProvider">
</component>
<component name="org.jboss.seam.persistence.persistenceProvider"
class="org.your.package.YourPersistenceProvider">
</component>
あとは正しいプロバイダクラスおよび使用するプロバイダが必要とするプロパティで
persistence.xml を更新するだけです。 必要となる JAR ファイル群を使用するアプリケーションでパッケージ化するのを忘れないようにしてください。