public class LocalSessionFactoryBuilder extends Configuration
Configuration
クラスの拡張。SpringSessionContext
をデフォルトとして追加し、JDBC DataSource
SE とアプリケーションクラスローダーを指定する便利な方法を提供します。 これは、プログラムで使用するために設計されています。@Bean
ファクトリメソッド。XML Bean 定義ファイルに LocalSessionFactoryBean
を使用することを検討してください。通常、SessionFactory
およびその JDBC DataSource
に対する宣言的トランザクションのために HibernateTransactionManager
と組み合わされます。
Spring 5.3 以降、Hibernate 5.2/5.3/5.4 と互換性があります。Hibernate SessionFactory
は JPA EntityManagerFactory
インターフェースもネイティブに公開するようになったため、この Hibernate 固有のファクトリビルダーは、JPA EntityManagerFactory
をセットアップするための便利な方法にもなります。
このビルダーは、Hibernate 5.3/5.4 BeanContainer
統合、カスタム BootstrapServiceRegistryBuilder
セットアップからの MetadataSources
、および標準の JPA ブートストラップ契約を超えるその他の高度な Hibernate 構成オプションをサポートしています。
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, org.hibernate.boot.MetadataSources metadataSources) 指定された DataSource の新しい LocalSessionFactoryBuilder を作成します。 |
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, buildMappings, buildSessionFactory, buildSessionFactory, configure, configure, configure, configure, configure, getCurrentTenantIdentifierResolver, getEntityNotFoundDelegate, getEntityTuplizerFactory, getInterceptor, getNamedEntityGraphs, getNamedProcedureCallMap, getNamedQueries, getNamedSQLQueries, getProperties, getProperty, getSessionFactoryObserver, getSqlFunctions, getSqlResultSetMappings, getStandardServiceRegistryBuilder, mergeProperties, registerTypeContributor, registerTypeOverride, registerTypeOverride, registerTypeOverride, reset, setEntityNotFoundDelegate, setImplicitNamingStrategy, setInterceptor, setPhysicalNamingStrategy, setProperties, setProperty, setSessionFactoryObserver, setSharedCacheMode
cloneSE, equalsSE, finalizeSE, getClassSE, hashCodeSE, notifySE, notifyAllSE, toStringSE, waitSE, waitSE, waitSE
public LocalSessionFactoryBuilder(@Nullable DataSourceSE dataSource)
dataSource
- 結果の Hibernate SessionFactory が使用する JDBC DataSource (null
の場合があります)public LocalSessionFactoryBuilder(@Nullable DataSourceSE dataSource, ClassLoaderSE classLoader)
dataSource
- 結果の Hibernate SessionFactory が使用する JDBC DataSource (null
の場合があります)classLoader
- アプリケーションクラスをロードする ClassLoaderpublic LocalSessionFactoryBuilder(@Nullable DataSourceSE dataSource, ResourceLoader resourceLoader)
dataSource
- 結果の Hibernate SessionFactory が使用する JDBC DataSource (null
の場合があります)resourceLoader
- アプリケーションクラスをロードする ResourceLoaderpublic LocalSessionFactoryBuilder(@Nullable DataSourceSE dataSource, ResourceLoader resourceLoader, org.hibernate.boot.MetadataSources metadataSources)
dataSource
- 結果の Hibernate SessionFactory が使用する JDBC DataSource (null
の場合があります)resourceLoader
- アプリケーションクラスをロードする ResourceLoadermetadataSources
- 使用する Hibernate MetadataSources サービス (たとえば既存のものを再利用する)public LocalSessionFactoryBuilder setJtaTransactionManager(ObjectSE jtaTransactionManager)
JtaTransactionManager
または JTA TransactionManager
SE がある場合は、それを設定します。"hibernate.transaction.jta.platform" が自動的に設定された状態で、Hibernate 5 のセッションとキャッシュの同期に Spring 管理のトランザクションマネージャーを使用できるようにします。 渡された Spring JtaTransactionManager
は、WebSphereExtendedJtaPlatform
を自動的に設定する WebSphere の場合を除き、ここで使用できるように JTA TransactionManager
SE 参照を含む必要があります。
メモ: これが設定されている場合、Hibernate 設定には、意味のない二重構成を避けるために JTA プラットフォーム設定を含めないでください。
public LocalSessionFactoryBuilder setBeanContainer(ConfigurableListableBeanFactory beanFactory)
ConfigurableListableBeanFactory
の Hibernate BeanContainer
を設定します。メモ: Bean コンテナーの統合には、Hibernate 5.3 以上が必要です。Hibernate 属性コンバーターとエンティティリスナーのオートワイヤーを有効にします。
SpringBeanContainer
, AvailableSettings.BEAN_CONTAINER
public LocalSessionFactoryBuilder setCacheRegionFactory(RegionFactory cacheRegionFactory)
RegionFactory
を SessionFactory に使用するように設定します。Spring 管理の RegionFactory
インスタンスを使用できます。メモ: これが設定されている場合、Hibernate 設定では、意味のない二重構成を避けるためにキャッシュプロバイダーを定義しないでください。
AvailableSettings.CACHE_REGION_FACTORY
public LocalSessionFactoryBuilder setMultiTenantConnectionProvider(org.hibernate.engine.jdbc.connections.spi.MultiTenantConnectionProvider multiTenantConnectionProvider)
MultiTenantConnectionProvider
を設定します。public void setCurrentTenantIdentifierResolver(CurrentTenantIdentifierResolver currentTenantIdentifierResolver)
CurrentTenantIdentifierResolver
を SessionFactory に確実に渡すためにオーバーライドされます。Configuration
の setCurrentTenantIdentifierResolver
AvailableSettings.MULTI_TENANT_IDENTIFIER_RESOLVER
public LocalSessionFactoryBuilder setEntityTypeFilters(TypeFilter... entityTypeFilters)
デフォルトでは、指定されたすべてのパッケージで @javax.persistence.Entity
、@javax.persistence.Embeddable
または @javax.persistence.MappedSuperclass
のアノテーションが付けられたクラスを検索します。
public LocalSessionFactoryBuilder addAnnotatedClasses(ClassSE<?>... annotatedClasses)
public LocalSessionFactoryBuilder addPackages(StringSE... annotatedPackages)
public LocalSessionFactoryBuilder scanPackages(StringSE... packagesToScan) throws HibernateException
Configuration
でアノテーション付きクラスとして登録します。packagesToScan
- 1 つ以上の Java パッケージ名 HibernateException
- 何らかの理由でスキャンが失敗した場合 public SessionFactory buildSessionFactory(AsyncTaskExecutor bootstrapExecutor)
SessionFactory
を構築し、並列初期化フェーズに指定されたエグゼキューター(例: SimpleAsyncTaskExecutor
)を使用します。SessionFactory
の初期化はバックグラウンドブートストラップモードに切り替わり、Hibernate のブートストラップが完了するのを待つのではなく、SessionFactory
プロキシがインジェクションの目的で直ちに返されます。ただし、SessionFactory
メソッドの最初の実際の呼び出しは、Hibernate のブートストラップが完了するまでブロックされます(それまでに準備ができていない場合)。最大限の利益を得るには、メタデータのイントロスペクションの目的であっても、関連する Bean の init メソッドでの初期の SessionFactory
呼び出しを避けてください。
Configuration.buildSessionFactory()