クラス LocalSessionFactoryBuilder
Configuration
クラスの拡張。SpringSessionContext
をデフォルトとして追加し、JDBC DataSource
SE とアプリケーションクラスローダーを指定する便利な方法を提供します。 これは、@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 に使用するように設定します。void
setCurrentTenantIdentifierResolver
(CurrentTenantIdentifierResolver currentTenantIdentifierResolver) CurrentTenantIdentifierResolver
を SessionFactory に確実に渡すためにオーバーライドされます。setEntityTypeFilters
(TypeFilter... entityTypeFilters) エンティティクラスの Spring ベースのスキャン用にカスタム型フィルターを指定します。setJtaTransactionManager
(ObjectSE jtaTransactionManager) SpringJtaTransactionManager
または JTATransactionManager
EE を 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
または JTATransactionManager
EE がある場合は、それを設定します。"hibernate.transaction.jta.platform" が自動的に設定された状態で、Hibernate 5 のセッションとキャッシュの同期に Spring 管理のトランザクションマネージャーを使用できるようにします。渡された Spring
JtaTransactionManager
は、WebSphereExtendedJtaPlatform
を自動的に設定する WebSphere の場合を除き、ここで使用できるように JTATransactionManager
EE 参照を含む必要があります。メモ: これが設定されている場合、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
- 関連事項: