クラス LocalSessionFactoryBuilder

java.lang.ObjectSE
org.hibernate.cfg.Configuration
org.springframework.orm.hibernate5.LocalSessionFactoryBuilder

public class LocalSessionFactoryBuilder extends Configuration
Spring が提供する標準 Hibernate Configuration クラスの拡張。SpringSessionContext をデフォルトとして追加し、JDBC DataSourceSE とアプリケーションクラスローダーを指定する便利な方法を提供します。

これは、プログラムで使用するために設計されています。@Bean ファクトリメソッド。XML Bean 定義ファイルに LocalSessionFactoryBean を使用することを検討してください。通常、SessionFactory およびその JDBC DataSource に対する宣言的トランザクションのために HibernateTransactionManager と組み合わされます。

Spring Framework 6.0 以降、Hibernate ORM 5.5/5.6 と互換性があります。Hibernate SessionFactory は JPA EntityManagerFactory インターフェースもネイティブに公開するため、この Hibernate 固有のファクトリビルダーは、JPA EntityManagerFactory を設定する便利な方法にもなります。

このビルダーは、Hibernate BeanContainer 統合、カスタム BootstrapServiceRegistryBuilder セットアップからの MetadataSources、および標準の JPA ブートストラップ契約を超えるその他の高度な Hibernate 構成オプションをサポートします。

導入:
4.2
作成者:
Juergen Hoeller
関連事項:
  • コンストラクターの詳細

    • LocalSessionFactoryBuilder

      public LocalSessionFactoryBuilder(@Nullable DataSourceSE dataSource)
      指定された DataSource の新しい LocalSessionFactoryBuilder を作成します。
      パラメーター:
      dataSource - 結果の Hibernate SessionFactory が使用する JDBC DataSource (null の場合があります)
    • LocalSessionFactoryBuilder

      public LocalSessionFactoryBuilder(@Nullable DataSourceSE dataSource, ClassLoaderSE classLoader)
      指定された DataSource の新しい LocalSessionFactoryBuilder を作成します。
      パラメーター:
      dataSource - 結果の Hibernate SessionFactory が使用する JDBC DataSource (null の場合があります)
      classLoader - アプリケーションクラスをロードする ClassLoader
    • LocalSessionFactoryBuilder

      public LocalSessionFactoryBuilder(@Nullable DataSourceSE dataSource, ResourceLoader resourceLoader)
      指定された DataSource の新しい LocalSessionFactoryBuilder を作成します。
      パラメーター:
      dataSource - 結果の Hibernate SessionFactory が使用する JDBC DataSource (null の場合があります)
      resourceLoader - アプリケーションクラスをロードする ResourceLoader
    • LocalSessionFactoryBuilder

      public LocalSessionFactoryBuilder(@Nullable DataSourceSE dataSource, ResourceLoader resourceLoader, org.hibernate.boot.MetadataSources metadataSources)
      指定された DataSource の新しい LocalSessionFactoryBuilder を作成します。
      パラメーター:
      dataSource - 結果の Hibernate SessionFactory が使用する JDBC DataSource (null の場合があります)
      resourceLoader - アプリケーションクラスをロードする ResourceLoader
      metadataSources - 使用する Hibernate MetadataSources サービス (たとえば既存のものを再利用する)
      導入:
      4.3
  • 方法の詳細

    • setJtaTransactionManager

      public LocalSessionFactoryBuilder setJtaTransactionManager(ObjectSE jtaTransactionManager)
      Hibernate で使用する Spring JtaTransactionManager または JTA TransactionManagerEE がある場合は、それを設定します。"hibernate.transaction.jta.platform" が自動的に設定された状態で、Hibernate 5 のセッションとキャッシュの同期に Spring 管理のトランザクションマネージャーを使用できるようにします。

      渡された Spring JtaTransactionManager は、WebSphereExtendedJtaPlatform を自動的に設定する WebSphere の場合を除き、ここで使用できるように JTA TransactionManagerEE 参照を含む必要があります。

      メモ: これが設定されている場合、Hibernate 設定には、意味のない二重構成を避けるために JTA プラットフォーム設定を含めないでください。

    • setBeanContainer

      public LocalSessionFactoryBuilder setBeanContainer(ConfigurableListableBeanFactory beanFactory)
      指定された Spring ConfigurableListableBeanFactory に対して Hibernate BeanContainer を設定します。

      これにより、Hibernate 属性コンバーターとエンティティリスナーのオートワイヤーが可能になります。

      導入:
      5.1
      関連事項:
    • setCacheRegionFactory

      public LocalSessionFactoryBuilder setCacheRegionFactory(RegionFactory cacheRegionFactory)
      Hibernate RegionFactory を SessionFactory に使用するように設定します。Spring 管理の RegionFactory インスタンスを使用できます。

      メモ: これが設定されている場合、Hibernate 設定では、意味のない二重構成を避けるためにキャッシュプロバイダーを定義しないでください。

      導入:
      5.1
      関連事項:
    • setMultiTenantConnectionProvider

      public LocalSessionFactoryBuilder setMultiTenantConnectionProvider(org.hibernate.engine.jdbc.connections.spi.MultiTenantConnectionProvider multiTenantConnectionProvider)
      SessionFactory に渡す MultiTenantConnectionProvider を設定します。
      導入:
      4.3
      関連事項:
    • setCurrentTenantIdentifierResolver

      public void setCurrentTenantIdentifierResolver(CurrentTenantIdentifierResolver currentTenantIdentifierResolver)
      CurrentTenantIdentifierResolver を SessionFactory に確実に渡すためにオーバーライドされます。
      オーバーライド:
      クラス ConfigurationsetCurrentTenantIdentifierResolver 
      導入:
      4.3.2
      関連事項:
    • setEntityTypeFilters

      public LocalSessionFactoryBuilder setEntityTypeFilters(TypeFilter... entityTypeFilters)
      エンティティクラスの Spring ベースのスキャン用にカスタム型フィルターを指定します。

      デフォルトでは、指定されたすべてのパッケージで @jakarta.persistence.Entity@jakarta.persistence.Embeddable または @jakarta.persistence.MappedSuperclass のアノテーションが付けられたクラスを検索します。

      関連事項:
    • addAnnotatedClasses

      public LocalSessionFactoryBuilder addAnnotatedClasses(ClassSE<?>... annotatedClasses)
      指定されたアノテーション付きクラスをバッチで追加します。
      関連事項:
    • addPackages

      public LocalSessionFactoryBuilder addPackages(StringSE... annotatedPackages)
      指定されたアノテーション付きパッケージをバッチで追加します。
      関連事項:
    • scanPackages

      public LocalSessionFactoryBuilder scanPackages(StringSE... packagesToScan) throws HibernateException
      エンティティクラスの Spring ベースのスキャンを実行し、この Configuration でアノテーション付きクラスとして登録します。
      パラメーター:
      packagesToScan - 1 つ以上の Java パッケージ名
      例外:
      HibernateException - 何らかの理由でスキャンが失敗した場合
    • buildSessionFactory

      public SessionFactory buildSessionFactory(AsyncTaskExecutor bootstrapExecutor)
      バックグラウンドブートストラップを介して Hibernate SessionFactory を構築し、並列初期化フェーズに指定されたエグゼキューター(例: SimpleAsyncTaskExecutor)を使用します。

      SessionFactory の初期化はバックグラウンドブートストラップモードに切り替わり、Hibernate のブートストラップが完了するのを待つのではなく、SessionFactory プロキシがインジェクションの目的で直ちに返されます。ただし、SessionFactory メソッドの最初の実際の呼び出しは、Hibernate のブートストラップが完了するまでブロックされます(それまでに準備ができていない場合)。最大限の利益を得るには、メタデータのイントロスペクションの目的であっても、関連する Bean の init メソッドでの初期の SessionFactory 呼び出しを避けてください。

      導入:
      4.3
      関連事項: