クラス LocalSessionFactoryBuilder
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 構成オプションをサポートしています。
フィールドのサマリー
クラス org.hibernate.cfg.Configuration から継承されたフィールド
ARTEFACT_PROCESSING_ORDERコンストラクターの概要
コンストラクターコンストラクター説明LocalSessionFactoryBuilder(DataSourceSE dataSource) 指定された DataSource の新しい LocalSessionFactoryBuilder を作成します。LocalSessionFactoryBuilder(DataSourceSE dataSource, ClassLoaderSE classLoader) 指定された DataSource の新しい LocalSessionFactoryBuilder を作成します。LocalSessionFactoryBuilder(DataSourceSE dataSource, ResourceLoader resourceLoader) 指定された DataSource の新しい LocalSessionFactoryBuilder を作成します。LocalSessionFactoryBuilder(DataSourceSE dataSource, ResourceLoader resourceLoader, MetadataSources metadataSources) 指定された DataSource の新しい LocalSessionFactoryBuilder を作成します。メソッドのサマリー
修飾子と型メソッド説明addAnnotatedClasses(ClassSE<?>... annotatedClasses) 指定されたアノテーション付きクラスをバッチで追加します。addPackages(StringSE... annotatedPackages) 指定されたアノテーション付きパッケージをバッチで追加します。buildSessionFactory(AsyncTaskExecutor bootstrapExecutor) 並列初期化フェーズに指定されたエグゼキュータ (たとえば、SimpleAsyncTaskExecutor) を使用して、バックグラウンドブートストラップを通じて HibernateSessionFactoryを構築します。scanPackages(StringSE... packagesToScan) エンティティクラスの Spring ベースのスキャンを実行し、このConfigurationでアノテーション付きクラスとして登録します。setBeanContainer(ConfigurableListableBeanFactory beanFactory) 指定された SpringConfigurableListableBeanFactoryの HibernateBeanContainerを設定します。setCacheRegionFactory(RegionFactory cacheRegionFactory) HibernateRegionFactoryを SessionFactory に使用するように設定します。voidsetCurrentTenantIdentifierResolver(CurrentTenantIdentifierResolver currentTenantIdentifierResolver) CurrentTenantIdentifierResolverを SessionFactory に確実に渡すためにオーバーライドされます。setEntityTypeFilters(TypeFilter... entityTypeFilters) エンティティクラスの Spring ベースのスキャン用にカスタム型フィルターを指定します。setJtaTransactionManager(ObjectSE jtaTransactionManager) SpringJtaTransactionManagerまたは JTATransactionManagerEE を Hibernate で使用するように設定します(ある場合)。setMultiTenantConnectionProvider(MultiTenantConnectionProvider multiTenantConnectionProvider) SessionFactory に渡されるMultiTenantConnectionProviderを設定します。クラス org.hibernate.cfg.Configuration から継承されたメソッド
add, addAnnotatedClass, addAttributeConverter, addAttributeConverter, addAttributeConverter, addAttributeConverter, addAttributeConverter, addAuxiliaryDatabaseObject, addCacheableFile, addCacheableFile, addCacheableFileStrictly, addClass, addDirectory, addDocument, addFile, addFile, addInputStream, addJar, addPackage, addProperties, addResource, addResource, addSqlFunction, addURL, addXML, addXmlMapping, buildMappings, buildSessionFactory, buildSessionFactory, configure, configure, configure, configure, configure, getCurrentTenantIdentifierResolver, getEntityNotFoundDelegate, getEntityTuplizerFactory, getInterceptor, getNamedEntityGraphs, getNamedProcedureCallMap, getNamedQueries, getNamedSQLQueries, getProperties, getProperty, getSessionFactoryObserver, getSqlFunctions, getSqlResultSetMappings, getStandardServiceRegistryBuilder, getXmlMappingBinderAccess, mergeProperties, registerTypeContributor, registerTypeOverride, registerTypeOverride, registerTypeOverride, reset, setEntityNotFoundDelegate, setImplicitNamingStrategy, setInterceptor, setPhysicalNamingStrategy, setProperties, setProperty, setSessionFactoryObserver, setSharedCacheMode
コンストラクターの詳細
LocalSessionFactoryBuilder
指定された DataSource の新しい LocalSessionFactoryBuilder を作成します。- パラメーター:
dataSource- 結果の Hibernate SessionFactory が使用する JDBC DataSource (nullの場合があります)
LocalSessionFactoryBuilder
指定された DataSource の新しい LocalSessionFactoryBuilder を作成します。- パラメーター:
dataSource- 結果の Hibernate SessionFactory が使用する JDBC DataSource (nullの場合があります)classLoader- アプリケーションクラスをロードする ClassLoader
LocalSessionFactoryBuilder
指定された DataSource の新しい LocalSessionFactoryBuilder を作成します。- パラメーター:
dataSource- 結果の Hibernate SessionFactory が使用する JDBC DataSource (nullの場合があります)resourceLoader- アプリケーションクラスをロードする ResourceLoader
LocalSessionFactoryBuilder
public LocalSessionFactoryBuilder(@Nullable DataSourceSE dataSource, ResourceLoader resourceLoader, MetadataSources metadataSources) 指定された DataSource の新しい LocalSessionFactoryBuilder を作成します。- パラメーター:
dataSource- 結果の Hibernate SessionFactory が使用する JDBC DataSource (nullの場合があります)resourceLoader- アプリケーションクラスをロードする ResourceLoadermetadataSources- 使用する Hibernate MetadataSources サービス (たとえば、既存のものを再利用する)- 導入:
- 4.3
メソッドの詳細
setJtaTransactionManager
Hibernate で使用する SpringJtaTransactionManagerまたは JTATransactionManagerEE がある場合は、それを設定します。"hibernate.transaction.jta.platform" が自動的に設定された状態で、Hibernate 5 のセッションとキャッシュの同期に Spring 管理のトランザクションマネージャーを使用できるようにします。渡された Spring
JtaTransactionManagerは、WebSphereExtendedJtaPlatformを自動的に設定する WebSphere の場合を除き、ここで使用できるように JTATransactionManagerEE 参照を含む必要があります。メモ: これが設定されている場合、Hibernate 設定には、意味のない二重構成を避けるために JTA プラットフォーム設定を含めないでください。
setBeanContainer
指定された SpringConfigurableListableBeanFactoryの HibernateBeanContainerを設定します。これにより、Hibernate 属性コンバーターとエンティティリスナーのオートワイヤーが可能になります。
setCacheRegionFactory
HibernateRegionFactoryを SessionFactory に使用するように設定します。Spring 管理のRegionFactoryインスタンスを使用できます。メモ: これが設定されている場合、Hibernate 設定では、意味のない二重構成を避けるためにキャッシュプロバイダーを定義しないでください。
- 導入:
- 5.1
- 関連事項:
setMultiTenantConnectionProvider
public LocalSessionFactoryBuilder setMultiTenantConnectionProvider(MultiTenantConnectionProvider multiTenantConnectionProvider) SessionFactory に渡されるMultiTenantConnectionProviderを設定します。setCurrentTenantIdentifierResolver
public void setCurrentTenantIdentifierResolver(CurrentTenantIdentifierResolver currentTenantIdentifierResolver) CurrentTenantIdentifierResolverを SessionFactory に確実に渡すためにオーバーライドされます。- オーバーライド:
- クラス
ConfigurationのsetCurrentTenantIdentifierResolver - 導入:
- 4.3.2
- 関連事項:
setEntityTypeFilters
エンティティクラスの Spring ベースのスキャン用にカスタム型フィルターを指定します。デフォルトでは、指定されたすべてのパッケージで
@jakarta.persistence.Entity、@jakarta.persistence.Embeddableまたは@jakarta.persistence.MappedSuperclassのアノテーションが付けられたクラスを検索します。addAnnotatedClasses
指定されたアノテーション付きクラスをバッチで追加します。addPackages
指定されたアノテーション付きパッケージをバッチで追加します。scanPackages
public LocalSessionFactoryBuilder scanPackages(StringSE... packagesToScan) throws HibernateException エンティティクラスの Spring ベースのスキャンを実行し、このConfigurationでアノテーション付きクラスとして登録します。- パラメーター:
packagesToScan- 1 つ以上の Java パッケージ名- 例外:
HibernateException- 何らかの理由でスキャンが失敗した場合
buildSessionFactory
並列初期化フェーズに指定されたエグゼキュータ (たとえば、SimpleAsyncTaskExecutor) を使用して、バックグラウンドブートストラップを通じて HibernateSessionFactoryを構築します。SessionFactoryの初期化はバックグラウンドブートストラップモードに切り替わり、Hibernate のブートストラップが完了するのを待つのではなく、SessionFactoryプロキシがインジェクションの目的で直ちに返されます。ただし、SessionFactoryメソッドの最初の実際の呼び出しは、Hibernate のブートストラップが完了するまでブロックされます(それまでに準備ができていない場合)。最大限の利益を得るには、メタデータのイントロスペクションの目的であっても、関連する Bean の init メソッドでの初期のSessionFactory呼び出しを避けてください。- 導入:
- 4.3
- 関連事項: