クラス HibernateJpaVendorAdapter

java.lang.ObjectSE
org.springframework.orm.jpa.vendor.AbstractJpaVendorAdapter
org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter
実装されたすべてのインターフェース:
JpaVendorAdapter

public class HibernateJpaVendorAdapter extends AbstractJpaVendorAdapter
Hibernate の JpaVendorAdapter 実装。Hibernate ORM 5.5/5.6 および 6.0/6.1/6.2/6.3 と互換性があります。

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
関連事項:
  • コンストラクターの詳細

    • 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" に設定します。

      導入:
      4.3.1
      関連事項:
    • getPersistenceProvider

      public PersistenceProviderEE getPersistenceProvider()
      インターフェースからコピーされた説明: JpaVendorAdapter
      ベンダー固有の永続性プロバイダーを返します。
    • getPersistenceProviderRootPackage

      public StringSE getPersistenceProviderRootPackage()
      インターフェースからコピーされた説明: JpaVendorAdapter
      永続性プロバイダーのルートパッケージの名前を返します(例: "oracle.toplink.essentials" )。一時的なクラスのオーバーライドからプロバイダークラスを除外するために使用されます。
      次で指定:
      インターフェース JpaVendorAdaptergetPersistenceProviderRootPackage 
      オーバーライド:
      クラス AbstractJpaVendorAdaptergetPersistenceProviderRootPackage 
    • getJpaPropertyMap

      public MapSE<StringSE,ObjectSE> getJpaPropertyMap(PersistenceUnitInfoEE pui)
      インターフェースからコピーされた説明: JpaVendorAdapter
      通常はこの JpaVendorAdapter インスタンスの設定に基づいて、特定の永続性ユニットのベンダー固有の JPA プロパティのマップを返します。

      EntityManagerFactory Bean でさらに JPA プロパティが定義されている可能性があることに注意してください。これにより、ここで指定された個々の JPA プロパティ値がオーバーライドされる可能性があります。

      この実装は、ユニットに依存しないプロパティについて JpaVendorAdapter.getJpaPropertyMap() に委譲します。実際には、この PersistenceUnitInfo ベースのバリアントは、トランザクション型などのユニット固有の特性に実際に対応する必要がある場合にのみ実装する必要があります。

      注意 : このバリアントは、PersistenceUnitInfoEE が存在する Jakarta EE スタイルのコンテナーブートストラップの場合にのみ呼び出されます(つまり、LocalContainerEntityManagerFactoryBean)。PersistenceEE(つまり LocalEntityManagerFactoryBean)を介した単純な Java SE スタイルのブートストラップの場合、パラメーターのない JpaVendorAdapter.getJpaPropertyMap() バリアントが直接呼び出されます。

      次で指定:
      インターフェース JpaVendorAdaptergetJpaPropertyMap 
      オーバーライド:
      クラス AbstractJpaVendorAdaptergetJpaPropertyMap 
      パラメーター:
      pui - 現在の永続性ユニットの PersistenceUnitInfo
      戻り値:
      標準の JPA ブートストラップ機能で受け入れられる JPA プロパティの Map、または公開するプロパティがない場合は空の Map
      関連事項:
    • getJpaPropertyMap

      public MapSE<StringSE,ObjectSE> getJpaPropertyMap()
      インターフェースからコピーされた説明: JpaVendorAdapter
      ベンダー固有の JPA プロパティのマップを返します。通常、この JpaVendorAdapter インスタンスの設定に基づいています。

      EntityManagerFactory Bean でさらに JPA プロパティが定義されている可能性があることに注意してください。これにより、ここで指定された個々の JPA プロパティ値がオーバーライドされる可能性があります。

      次で指定:
      インターフェース JpaVendorAdaptergetJpaPropertyMap 
      オーバーライド:
      クラス AbstractJpaVendorAdaptergetJpaPropertyMap 
      戻り値:
      標準の JPA ブートストラップ機能で受け入れられる JPA プロパティの Map、または公開するプロパティがない場合は空の Map
      関連事項:
    • determineDatabaseDialectClass

      @Nullable protected ClassSE<?> determineDatabaseDialectClass(Database database)
      指定されたターゲットデータベースの Hibernate データベースのダイアレクトクラスを決定します。
      パラメーター:
      database - ターゲットデータベース
      戻り値:
      Hibernate データベースのダイアレクトクラス。見つからない場合は null 
    • getJpaDialect

      public HibernateJpaDialect getJpaDialect()
      インターフェースからコピーされた説明: JpaVendorAdapter
      このプロバイダーのベンダー固有の JpaDialect 実装、または存在しない場合は null を返します。
      次で指定:
      インターフェース JpaVendorAdaptergetJpaDialect 
      オーバーライド:
      クラス AbstractJpaVendorAdaptergetJpaDialect 
    • getEntityManagerFactoryInterface

      public ClassSE<? extends EntityManagerFactoryEE> getEntityManagerFactoryInterface()
      インターフェースからコピーされた説明: JpaVendorAdapter
      EntityManagerFactory プロキシが実装することになっているベンダー固有の EntityManagerFactory インターフェースを返します。

      プロバイダーが EntityManagerFactory 拡張を提供しない場合、アダプターは標準の EntityManagerFactoryEE クラスをここで返すだけです。

      次で指定:
      インターフェース JpaVendorAdaptergetEntityManagerFactoryInterface 
      オーバーライド:
      クラス AbstractJpaVendorAdaptergetEntityManagerFactoryInterface 
    • getEntityManagerInterface

      public ClassSE<? extends EntityManagerEE> getEntityManagerInterface()
      インターフェースからコピーされた説明: JpaVendorAdapter
      このプロバイダーの EntityManagers が実装するベンダー固有の EntityManager インターフェースを返します。

      プロバイダーが EntityManager 拡張を提供しない場合、アダプターは標準の EntityManagerEE クラスをここで返すだけです。

      次で指定:
      インターフェース JpaVendorAdaptergetEntityManagerInterface 
      オーバーライド:
      クラス AbstractJpaVendorAdaptergetEntityManagerInterface