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