クラス HibernateJpaVendorAdapter
- 実装されたすべてのインターフェース:
JpaVendorAdapter
JpaVendorAdapter
実装。Hibernate ORM 5.5/5.6 および 6.0/6.1 と互換性があります。Hibernate の永続性プロバイダーと Hibernate のセッションを継承 EntityManager インターフェースとして公開し、AbstractJpaVendorAdapter
の一般的な構成設定を適応させます。アノテーション付きパッケージの検出もサポートします(SmartPersistenceUnitInfo.getManagedPackages()
を介して)。Hibernate FilterDef
アノテーションと、persistence.xml
(LocalContainerEntityManagerFactoryBean.setPackagesToScan(java.lang.String...)
)を必要としない Spring 駆動のエンティティスキャンが含まれています。
HibernateJpaVendorAdapter
とネイティブ Hibernate 設定に関する注意 : このアダプターの一部の設定は、ネイティブ Hibernate 構成ルールまたはカスタム Hibernate プロパティと競合する場合があります。例: AbstractJpaVendorAdapter.setDatabase(org.springframework.orm.jpa.vendor.Database)
または Hibernate の "hibernate.dialect_resolvers" プロパティの両方ではなく、いずれかを指定します。また、Hibernate の接続解放モードにも注意してください。このアダプターは、少なくとも非 JTA シナリオでは、HibernateJpaDialect.setPrepareConnection(boolean)
に合わせた ON_CLOSE
の動作を優先します。対応するネイティブ Hibernate プロパティを介してこれをオーバーライドできます。
- 導入:
- 2.0
- 作成者:
- Juergen Hoeller, Rod Johnson
- 関連事項:
コンストラクターのサマリー
メソッドのサマリー
修飾子と型メソッド説明protected ClassSE<?>
determineDatabaseDialectClass
(Database database) 指定されたターゲットデータベースの Hibernate データベースのダイアレクトクラスを決定します。ClassSE<? extends EntityManagerFactoryEE>
EntityManagerFactory プロキシが実装することになっているベンダー固有の EntityManagerFactory インターフェースを返します。ClassSE<? extends EntityManagerEE>
このプロバイダーの EntityManagers が実装するベンダー固有の EntityManager インターフェースを返します。このプロバイダーのベンダー固有の JpaDialect 実装、または存在しない場合はnull
を返します。ベンダー固有の JPA プロパティのマップを返します。通常、この JpaVendorAdapter インスタンスの設定に基づいています。通常はこの JpaVendorAdapter インスタンスの設定に基づいて、特定の永続性ユニットのベンダー固有の JPA プロパティのマップを返します。ベンダー固有の永続性プロバイダーを返します。永続化プロバイダーのルートパッケージの名前を返します(例:void
setPrepareConnection
(boolean prepareConnection) トランザクション Hibernate セッションの基盤となる JDBC 接続を準備するかどうか、つまり、基盤となる JDBC 接続にトランザクション固有の分離レベルやトランザクションの読み取り専用フラグを適用するかどうかを設定します。クラス org.springframework.orm.jpa.vendor.AbstractJpaVendorAdapter から継承されたメソッド
getDatabase, getDatabasePlatform, isGenerateDdl, isShowSql, postProcessEntityManager, postProcessEntityManagerFactory, setDatabase, setDatabasePlatform, setGenerateDdl, setShowSql
コンストラクターの詳細
HibernateJpaVendorAdapter
public HibernateJpaVendorAdapter()
メソッドの詳細
setPrepareConnection
public void setPrepareConnection(boolean prepareConnection) トランザクション Hibernate セッションの基盤となる JDBC 接続を準備するかどうか、つまり、基盤となる JDBC 接続にトランザクション固有の分離レベルやトランザクションの読み取り専用フラグを適用するかどうかを設定します。詳細については、
HibernateJpaDialect.setPrepareConnection(boolean)
を参照してください。これは、HibernateJpaDialect
に渡される便利なフラグです。Hibernate 5.1+ では、このフラグは、以前の Hibernate バージョンと同様に、デフォルトでは
true
のままです。その場合、ベンダーアダプターは、ユーザー指定の接続処理モードプロパティで特に指定されていない限り、Hibernate の新しい接続処理モードDELAYED_ACQUISITION_AND_HOLD
を手動で適用します。このフラグをfalse
に切り替えて、その干渉を回避します。注: トランザクション型 JTA の永続ユニット(WebLogic など)の場合、接続解放モードがプロバイダーのデフォルトから変更されることはありません。つまり、このフラグによって
DELAYED_ACQUISITION_AND_HOLD
に強制されることはありません。または、このようなシナリオでは、Hibernate の "hibernate.connection.handling_mode" プロパティを "DELAYED_ACQUISITION_AND_RELEASE_AFTER_TRANSACTION" または "DELAYED_ACQUISITION_AND_RELEASE_AFTER_STATEMENT" に設定します。getPersistenceProvider
インターフェースからコピーされた説明:JpaVendorAdapter
ベンダー固有の永続性プロバイダーを返します。getPersistenceProviderRootPackage
インターフェースからコピーされた説明:JpaVendorAdapter
永続性プロバイダーのルートパッケージの名前を返します(例: "oracle.toplink.essentials" )。一時的なクラスのオーバーライドからプロバイダークラスを除外するために使用されます。- 次で指定:
- インターフェース
JpaVendorAdapter
のgetPersistenceProviderRootPackage
- オーバーライド:
- クラス
AbstractJpaVendorAdapter
のgetPersistenceProviderRootPackage
getJpaPropertyMap
インターフェースからコピーされた説明:JpaVendorAdapter
通常はこの JpaVendorAdapter インスタンスの設定に基づいて、特定の永続性ユニットのベンダー固有の JPA プロパティのマップを返します。EntityManagerFactory Bean でさらに JPA プロパティが定義されている可能性があることに注意してください。これにより、ここで指定された個々の JPA プロパティ値がオーバーライドされる可能性があります。
この実装は、ユニットに依存しないプロパティについて
JpaVendorAdapter.getJpaPropertyMap()
に委譲します。実際には、この PersistenceUnitInfo ベースのバリアントは、トランザクション型などのユニット固有の特性に実際に対応する必要がある場合にのみ実装する必要があります。注意 : このバリアントは、
PersistenceUnitInfo
EE が存在する Jakarta EE スタイルのコンテナーブートストラップの場合にのみ呼び出されます(つまり、LocalContainerEntityManagerFactoryBean
)。Persistence
EE(つまりLocalEntityManagerFactoryBean
)を介した単純な Java SE スタイルのブートストラップの場合、パラメーターのないJpaVendorAdapter.getJpaPropertyMap()
バリアントが直接呼び出されます。- 次で指定:
- インターフェース
JpaVendorAdapter
のgetJpaPropertyMap
- オーバーライド:
- クラス
AbstractJpaVendorAdapter
のgetJpaPropertyMap
- パラメーター:
pui
- 現在の永続性ユニットの PersistenceUnitInfo- 戻り値:
- 標準の JPA ブートストラップ機能で受け入れられる JPA プロパティの Map、または公開するプロパティがない場合は空の Map
- 関連事項:
getJpaPropertyMap
インターフェースからコピーされた説明:JpaVendorAdapter
ベンダー固有の JPA プロパティのマップを返します。通常、この JpaVendorAdapter インスタンスの設定に基づいています。EntityManagerFactory Bean でさらに JPA プロパティが定義されている可能性があることに注意してください。これにより、ここで指定された個々の JPA プロパティ値がオーバーライドされる可能性があります。
- 次で指定:
- インターフェース
JpaVendorAdapter
のgetJpaPropertyMap
- オーバーライド:
- クラス
AbstractJpaVendorAdapter
のgetJpaPropertyMap
- 戻り値:
- 標準の JPA ブートストラップ機能で受け入れられる JPA プロパティの Map、または公開するプロパティがない場合は空の Map
- 関連事項:
determineDatabaseDialectClass
指定されたターゲットデータベースの Hibernate データベースのダイアレクトクラスを決定します。- パラメーター:
database
- ターゲットデータベース- 戻り値:
- Hibernate データベースのダイアレクトクラス。見つからない場合は
null
getJpaDialect
インターフェースからコピーされた説明:JpaVendorAdapter
このプロバイダーのベンダー固有の JpaDialect 実装、または存在しない場合はnull
を返します。- 次で指定:
- インターフェース
JpaVendorAdapter
のgetJpaDialect
- オーバーライド:
- クラス
AbstractJpaVendorAdapter
のgetJpaDialect
getEntityManagerFactoryInterface
インターフェースからコピーされた説明:JpaVendorAdapter
EntityManagerFactory プロキシが実装することになっているベンダー固有の EntityManagerFactory インターフェースを返します。プロバイダーが EntityManagerFactory 拡張を提供しない場合、アダプターは標準の
EntityManagerFactory
EE クラスをここで返すだけです。- 次で指定:
- インターフェース
JpaVendorAdapter
のgetEntityManagerFactoryInterface
- オーバーライド:
- クラス
AbstractJpaVendorAdapter
のgetEntityManagerFactoryInterface
getEntityManagerInterface
インターフェースからコピーされた説明:JpaVendorAdapter
このプロバイダーの EntityManagers が実装するベンダー固有の EntityManager インターフェースを返します。プロバイダーが EntityManager 拡張を提供しない場合、アダプターは標準の
EntityManager
EE クラスをここで返すだけです。- 次で指定:
- インターフェース
JpaVendorAdapter
のgetEntityManagerInterface
- オーバーライド:
- クラス
AbstractJpaVendorAdapter
のgetEntityManagerInterface