public class LocalSessionFactoryBuilder
extends org.hibernate.cfg.Configuration
Configuration
class,
adding SpringSessionContext
as a default and providing convenient ways
to specify a DataSource and an application class loader.
This is designed for programmatic use, e.g. in @Bean
factory methods.
Consider using LocalSessionFactoryBean
for XML bean definition files.
NOTE: To set up Hibernate 4 for Spring-driven JTA transactions, make
sure to either use the setJtaTransactionManager(java.lang.Object)
method or to set the
"hibernate.transaction.factory_class" property to CMTTransactionFactory
.
Otherwise, Hibernate's smart flushing mechanism won't work properly.
LocalSessionFactoryBean
,
Serialized FormauxiliaryDatabaseObjects, classes, collections, columnNameBindingPerTable, extendsQueue, filterDefinitions, imports, namedQueries, namedSqlQueries, namingStrategy, propertyReferences, secondPasses, settingsFactory, sqlFunctions, sqlResultSetMappings, tableNameBinding, tables, typeDefs, xmlHelper
Constructor and Description |
---|
LocalSessionFactoryBuilder(javax.sql.DataSource dataSource)
Create a new LocalSessionFactoryBuilder for the given DataSource.
|
LocalSessionFactoryBuilder(javax.sql.DataSource dataSource,
java.lang.ClassLoader classLoader)
Create a new LocalSessionFactoryBuilder for the given DataSource.
|
LocalSessionFactoryBuilder(javax.sql.DataSource dataSource,
org.springframework.core.io.ResourceLoader resourceLoader)
Create a new LocalSessionFactoryBuilder for the given DataSource.
|
Modifier and Type | Method and Description |
---|---|
LocalSessionFactoryBuilder |
addAnnotatedClasses(java.lang.Class<?>... annotatedClasses)
Add the given annotated classes in a batch.
|
LocalSessionFactoryBuilder |
addPackages(java.lang.String... annotatedPackages)
Add the given annotated packages in a batch.
|
org.hibernate.SessionFactory |
buildSessionFactory()
Build the
SessionFactory . |
LocalSessionFactoryBuilder |
scanPackages(java.lang.String... packagesToScan)
Perform Spring-based scanning for entity classes, registering them
as annotated classes with this
Configuration . |
LocalSessionFactoryBuilder |
setJtaTransactionManager(java.lang.Object jtaTransactionManager)
Set the Spring
JtaTransactionManager or the JTA TransactionManager
to be used with Hibernate, if any. |
add, addAuxiliaryDatabaseObject, addCacheableFile, addCacheableFile, addClass, addDirectory, addDocument, addFile, addFile, addFilterDefinition, addInputStream, addJar, addProperties, addResource, addResource, addSqlFunction, addURL, addXML, buildMapping, buildMappings, buildSettings, buildSettings, configure, configure, configure, configure, configure, createMappings, doConfigure, doConfigure, findPossibleExtends, generateDropSchemaScript, generateSchemaCreationScript, generateSchemaUpdateScript, getClassMapping, getClassMappings, getCollectionMapping, getCollectionMappings, getConfigurationInputStream, getEntityNotFoundDelegate, getEntityResolver, getEventListeners, getFilterDefinitions, getImports, getInterceptor, getNamedQueries, getNamedSQLQueries, getNamingStrategy, getProperties, getProperty, getSessionFactoryObserver, getSqlFunctions, getSqlResultSetMappings, getTableMappings, mergeProperties, parseMappingElement, reset, secondPassCompile, secondPassCompileForeignKeys, setCacheConcurrencyStrategy, setCacheConcurrencyStrategy, setCollectionCacheConcurrencyStrategy, setCollectionCacheConcurrencyStrategy, setEntityNotFoundDelegate, setEntityResolver, setInterceptor, setListener, setListener, setListeners, setListeners, setNamingStrategy, setProperties, setProperty, setSessionFactoryObserver, validateSchema
public LocalSessionFactoryBuilder(javax.sql.DataSource dataSource)
dataSource
- the JDBC DataSource that the resulting Hibernate SessionFactory should be using
(may be null
)public LocalSessionFactoryBuilder(javax.sql.DataSource dataSource, java.lang.ClassLoader classLoader)
dataSource
- the JDBC DataSource that the resulting Hibernate SessionFactory should be using
(may be null
)classLoader
- the ClassLoader to load application classes frompublic LocalSessionFactoryBuilder(javax.sql.DataSource dataSource, org.springframework.core.io.ResourceLoader resourceLoader)
dataSource
- the JDBC DataSource that the resulting Hibernate SessionFactory should be using
(may be null
)resourceLoader
- the ResourceLoader to load application classes frompublic LocalSessionFactoryBuilder setJtaTransactionManager(java.lang.Object jtaTransactionManager)
JtaTransactionManager
or the JTA TransactionManager
to be used with Hibernate, if any. Allows for using a Spring-managed transaction
manager for Hibernate 4's session and cache synchronization, with the
"hibernate.transaction.jta.platform" automatically set to it. Also sets
"hibernate.transaction.factory_class" to CMTTransactionFactory
,
instructing Hibernate to interact with externally managed transactions.
A passed-in Spring JtaTransactionManager
needs to contain a JTA
TransactionManager
reference to be usable here, except for the WebSphere
case where we'll automatically set WebSphereExtendedJtaPlatform
accordingly.
Note: If this is set, the Hibernate settings should not contain a JTA platform setting to avoid meaningless double configuration.
public LocalSessionFactoryBuilder addAnnotatedClasses(java.lang.Class<?>... annotatedClasses)
#addAnnotatedClass
,
scanPackages(java.lang.String...)
public LocalSessionFactoryBuilder addPackages(java.lang.String... annotatedPackages)
#addPackage
,
scanPackages(java.lang.String...)
public LocalSessionFactoryBuilder scanPackages(java.lang.String... packagesToScan) throws org.hibernate.HibernateException
Configuration
.packagesToScan
- one or more Java package namesorg.hibernate.HibernateException
- if scanning fails for any reasonpublic org.hibernate.SessionFactory buildSessionFactory() throws org.hibernate.HibernateException
SessionFactory
.buildSessionFactory
in class org.hibernate.cfg.Configuration
org.hibernate.HibernateException