public class AnnotationSessionFactoryBean extends LocalSessionFactoryBean implements ResourceLoaderAware
Note: As of Spring 4.0, this class requires Hibernate 3.6 or later, with the Java Persistence API present.
Example for an AnnotationSessionFactoryBean bean definition:
<bean id="sessionFactory" class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean"> <property name="dataSource" ref="dataSource"/> <property name="annotatedClasses"> <list> <value>test.package.Foo</value> <value>test.package.Bar</value> </list> </property> </bean>Or when using classpath scanning for autodetection of entity classes:
<bean id="sessionFactory" class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean"> <property name="dataSource" ref="dataSource"/> <property name="packagesToScan" value="test.package"/> </bean>
Requires Hibernate 3.6 or later, as of Spring 4.0.
AbstractSessionFactoryBean.setDataSource(javax.sql.DataSource)
,
LocalSessionFactoryBean.setHibernateProperties(java.util.Properties)
,
setAnnotatedClasses(java.lang.Class<?>[])
,
setAnnotatedPackages(java.lang.String[])
logger
Constructor and Description |
---|
AnnotationSessionFactoryBean() |
Modifier and Type | Method and Description |
---|---|
protected void |
postProcessMappings(Configuration config)
Reads metadata from annotated classes and packages into the
AnnotationConfiguration instance.
|
protected void |
scanPackages(Configuration config)
Perform Spring-based scanning for entity classes.
|
void |
setAnnotatedClasses(Class<?>[] annotatedClasses)
Specify annotated classes, for which mappings will be read from
class-level JDK 1.5+ annotation metadata.
|
void |
setAnnotatedPackages(String[] annotatedPackages)
Specify the names of annotated packages, for which package-level
JDK 1.5+ annotation metadata will be read.
|
void |
setEntityTypeFilters(TypeFilter[] entityTypeFilters)
Specify custom type filters for Spring-based scanning for entity classes.
|
void |
setPackagesToScan(String[] packagesToScan)
Specify packages to search using Spring-based scanning for entity classes in
the classpath.
|
void |
setResourceLoader(ResourceLoader resourceLoader)
Set the ResourceLoader that this object runs in.
|
afterSessionFactoryCreation, buildSessionFactory, createDatabaseSchema, destroy, dropDatabaseSchema, executeSchemaScript, executeSchemaStatement, getConfigTimeDataSource, getConfigTimeLobHandler, getConfigTimeTransactionManager, getConfiguration, getHibernateProperties, newConfiguration, newSessionFactory, postProcessConfiguration, setBeanClassLoader, setCacheableMappingLocations, setCacheRegionFactory, setCollectionCacheStrategies, setConfigLocation, setConfigLocations, setConfigurationClass, setEntityCacheStrategies, setEntityInterceptor, setEventListeners, setFilterDefinitions, setHibernateProperties, setJtaTransactionManager, setLobHandler, setMappingDirectoryLocations, setMappingJarLocations, setMappingLocations, setMappingResources, setNamingStrategy, setSchemaUpdate, setTypeDefinitions, updateDatabaseSchema, validateDatabaseSchema
afterPropertiesSet, beforeSessionFactoryDestruction, getDataSource, getObject, getObjectType, getSessionFactory, isExposeTransactionAwareSessionFactory, isSingleton, isUseTransactionAwareDataSource, setDataSource, setExposeTransactionAwareSessionFactory, setUseTransactionAwareDataSource, wrapSessionFactoryIfNecessary
convertHibernateAccessException, setJdbcExceptionTranslator, translateExceptionIfPossible
public void setAnnotatedClasses(Class<?>[] annotatedClasses)
Configuration.addAnnotatedClass(Class)
public void setAnnotatedPackages(String[] annotatedPackages)
Configuration.addPackage(String)
public void setPackagesToScan(String[] packagesToScan)
Default is none. Specify packages to search for autodetection of your entity
classes in the classpath. This is analogous to Spring's component-scan feature
(ClassPathBeanDefinitionScanner
).
public void setEntityTypeFilters(TypeFilter[] entityTypeFilters)
Default is to search all specified packages for classes annotated with
@javax.persistence.Entity
, @javax.persistence.Embeddable
or @javax.persistence.MappedSuperclass
, as well as for
Hibernate's special @org.hibernate.annotations.Entity
.
setPackagesToScan(java.lang.String[])
public void setResourceLoader(ResourceLoader resourceLoader)
ResourceLoaderAware
This might be a ResourcePatternResolver, which can be checked
through instanceof ResourcePatternResolver
. See also the
ResourcePatternUtils.getResourcePatternResolver
method.
Invoked after population of normal bean properties but before an init callback
like InitializingBean's afterPropertiesSet
or a custom init-method.
Invoked before ApplicationContextAware's setApplicationContext
.
setResourceLoader
in interface ResourceLoaderAware
resourceLoader
- ResourceLoader object to be used by this objectResourcePatternResolver
,
ResourcePatternUtils.getResourcePatternResolver(org.springframework.core.io.ResourceLoader)
protected void postProcessMappings(Configuration config) throws HibernateException
postProcessMappings
in class LocalSessionFactoryBean
config
- the current Configuration objectHibernateException
- in case of Hibernate initialization errorsConfiguration.buildMappings()
protected void scanPackages(Configuration config)
setPackagesToScan(java.lang.String[])