public class

AnnotationSessionFactoryBean

extends LocalSessionFactoryBean
implements ResourceLoaderAware
java.lang.Object
   ↳ org.springframework.orm.hibernate3.AbstractSessionFactoryBean
     ↳ org.springframework.orm.hibernate3.LocalSessionFactoryBean
       ↳ org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean

Class Overview

Subclass of Spring's standard LocalSessionFactoryBean for Hibernate, supporting JDK 1.5+ annotation metadata for mappings.

Note: This class requires Hibernate 3.2 or later, with the Java Persistence API and the Hibernate Annotations add-on 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>

Summary

[Expand]
Inherited Fields
From class org.springframework.orm.hibernate3.AbstractSessionFactoryBean
Public Constructors
AnnotationSessionFactoryBean()
Public Methods
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 setConfigurationClass(Class configurationClass)
Specify the Hibernate Configuration class to use.
void setEntityTypeFilters(TypeFilter[] entityTypeFilters)
Specify custom type filters for Spring-based scanning for entity classes.
void setPackagesToScan(String[] packagesToScan)
Set whether to use Spring-based scanning for entity classes in the classpath instead of listing annotated classes explicitly.
void setResourceLoader(ResourceLoader resourceLoader)
Set the ResourceLoader that this object runs in.
Protected Methods
void postProcessAnnotationConfiguration(AnnotationConfiguration config)
To be implemented by subclasses which want to to perform custom post-processing of the AnnotationConfiguration object after this FactoryBean performed its default initialization.
void postProcessConfiguration(Configuration config)
This default implementation delegates to postProcessAnnotationConfiguration(AnnotationConfiguration).
void postProcessMappings(Configuration config)
Reads metadata from annotated classes and packages into the AnnotationConfiguration instance.
void scanPackages(AnnotationConfiguration config)
Perform Spring-based scanning for entity classes.
[Expand]
Inherited Methods
From class org.springframework.orm.hibernate3.LocalSessionFactoryBean
From class org.springframework.orm.hibernate3.AbstractSessionFactoryBean
From class java.lang.Object
From interface org.springframework.beans.factory.BeanClassLoaderAware
From interface org.springframework.beans.factory.DisposableBean
From interface org.springframework.beans.factory.FactoryBean
From interface org.springframework.beans.factory.InitializingBean
From interface org.springframework.context.ResourceLoaderAware
From interface org.springframework.dao.support.PersistenceExceptionTranslator

Public Constructors

public AnnotationSessionFactoryBean ()

Public Methods

public void setAnnotatedClasses (Class[] annotatedClasses)

Specify annotated classes, for which mappings will be read from class-level JDK 1.5+ annotation metadata.

See Also
  • org.hibernate.cfg.AnnotationConfiguration#addAnnotatedClass(Class)

public void setAnnotatedPackages (String[] annotatedPackages)

Specify the names of annotated packages, for which package-level JDK 1.5+ annotation metadata will be read.

See Also
  • org.hibernate.cfg.AnnotationConfiguration#addPackage(String)

public void setConfigurationClass (Class configurationClass)

Specify the Hibernate Configuration class to use. Default is "org.hibernate.cfg.Configuration"; any subclass of this default Hibernate Configuration class can be specified.

Can be set to "org.hibernate.cfg.AnnotationConfiguration" for using Hibernate3 annotation support (initially only available as alpha download separate from the main Hibernate3 distribution).

Annotated packages and annotated classes can be specified via the corresponding tags in "hibernate.cfg.xml" then, so this will usually be combined with a "configLocation" property that points at such a standard Hibernate configuration file.

public void setEntityTypeFilters (TypeFilter[] entityTypeFilters)

Specify custom type filters for Spring-based scanning for entity classes.

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.

public void setPackagesToScan (String[] packagesToScan)

Set whether to use Spring-based scanning for entity classes in the classpath instead of listing annotated classes explicitly.

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 setResourceLoader (ResourceLoader resourceLoader)

Set the ResourceLoader that this object runs in.

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.

Parameters
resourceLoader ResourceLoader object to be used by this object

Protected Methods

protected void postProcessAnnotationConfiguration (AnnotationConfiguration config)

To be implemented by subclasses which want to to perform custom post-processing of the AnnotationConfiguration object after this FactoryBean performed its default initialization.

Note: As of Hibernate 3.6, AnnotationConfiguration's features have been rolled into Configuration itself. Simply overriding #postProcessConfiguration(org.hibernate.cfg.Configuration) becomes an option as well then.

Parameters
config the current AnnotationConfiguration object
Throws
in case of Hibernate initialization errors
HibernateException

protected void postProcessConfiguration (Configuration config)

This default implementation delegates to postProcessAnnotationConfiguration(AnnotationConfiguration).

Parameters
config the current Configuration object
Throws
HibernateException

protected void postProcessMappings (Configuration config)

Reads metadata from annotated classes and packages into the AnnotationConfiguration instance.

Parameters
config the current Configuration object
Throws
HibernateException

protected void scanPackages (AnnotationConfiguration config)

Perform Spring-based scanning for entity classes.