|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectorg.springframework.orm.hibernate3.SessionFactoryBuilderSupport<AnnotationSessionFactoryBuilder>
org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBuilder
public class AnnotationSessionFactoryBuilder
Hibernate AnnotationConfiguration
builder suitable for use within Spring
@Configuration
class @Bean
methods. For complete details on features, see the
JavaDoc for the SessionFactoryBuilderSupport
superclass. For use in
Spring XML configuration, see the AnnotationSessionFactoryBean
subclass.
As noted in SessionFactoryBuilderSupport
JavaDoc, this class requires
Hibernate 3.2 or later; it additionally requires that the Java Persistence API
and Hibernate Annotations add-ons are present.
Setter methods return the builder instance in order to facilitate a concise and convenient method-chaining style. For example:
@Configuration
public class DataConfig {@Bean
public SessionFactory sessionFactory() { return new AnnotationSessionFactoryBuilder() .setDataSource(dataSource()) .setPackagesToScan("com.myco"}) .buildSessionFactory(); } }
Most Hibernate configuration operations can be performed directly against
this API; however you may also access access and configure the underlying
AnnotationConfiguration
object by using the SessionFactoryBuilderSupport.doWithConfiguration(org.springframework.orm.hibernate3.HibernateConfigurationCallback
method and providing a HibernateConfigurationCallback
as follows:
SessionFactory sessionFactory = new AnnotationSessionFactoryBuilder() // ... .doWithConfiguration(new HibernateConfigurationCallback<AnnotationConfiguration>() { public void configure(AnnotationConfiguration cfg) { cfg.addAnnotatedClass(Foo.class); } }) .buildSessionFactory();
SessionFactoryBuilderSupport
,
SessionFactoryBuilder
,
AnnotationSessionFactoryBean
Field Summary |
---|
Fields inherited from class org.springframework.orm.hibernate3.SessionFactoryBuilderSupport |
---|
logger |
Constructor Summary | |
---|---|
AnnotationSessionFactoryBuilder()
Construct a new AnnotationSessionFactoryBuilder |
|
AnnotationSessionFactoryBuilder(DataSource dataSource)
Construct a new AnnotationSessionFactoryBuilder with the given
Spring-managed DataSource instance. |
Method Summary | |
---|---|
protected Class<? extends org.hibernate.cfg.Configuration> |
getDefaultConfigurationClass()
Return the default Configuration type used by this instance. |
protected void |
postProcessAnnotationConfiguration()
To be implemented by subclasses which want to to perform custom post-processing of the AnnotationConfiguration object after this FactoryBean performed its default initialization. |
protected void |
postProcessConfiguration()
Delegates to postProcessAnnotationConfiguration() . |
protected void |
postProcessMappings()
Reads metadata from annotated classes and packages into the AnnotationConfiguration instance. |
protected void |
scanPackages()
Perform Spring-based scanning for entity classes. |
AnnotationSessionFactoryBuilder |
setAnnotatedClasses(Class<?>... annotatedClasses)
Specify annotated classes, for which mappings will be read from class-level JDK 1.5+ annotation metadata. |
AnnotationSessionFactoryBuilder |
setAnnotatedPackages(String... annotatedPackages)
Specify the names of annotated packages, for which package-level JDK 1.5+ annotation metadata will be read. |
AnnotationSessionFactoryBuilder |
setEntityTypeFilters(TypeFilter... entityTypeFilters)
Specify custom type filters for Spring-based scanning for entity classes. |
AnnotationSessionFactoryBuilder |
setPackagesToScan(String... packagesToScan)
Set whether to use Spring-based scanning for entity classes in the classpath instead of listing annotated classes explicitly. |
AnnotationSessionFactoryBuilder |
setResourcePatternResolver(ResourcePatternResolver resourcePatternResolver)
|
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Constructor Detail |
---|
public AnnotationSessionFactoryBuilder()
AnnotationSessionFactoryBuilder
public AnnotationSessionFactoryBuilder(DataSource dataSource)
AnnotationSessionFactoryBuilder
with the given
Spring-managed DataSource
instance.
SessionFactoryBuilderSupport.setDataSource(javax.sql.DataSource)
Method Detail |
---|
protected Class<? extends org.hibernate.cfg.Configuration> getDefaultConfigurationClass()
SessionFactoryBuilderSupport.setConfigurationClass(Class)
.
This implementation returns Configuration
if
Hibernate 3.6 or greater is available on the runtime classpath, otherwise
AnnotationConfiguration
. This accommodates
the consolidation of these two types and deprecation of the latter in
Hibernate 3.6.
getDefaultConfigurationClass
in class SessionFactoryBuilderSupport<AnnotationSessionFactoryBuilder>
SessionFactoryBuilderSupport.doWithConfiguration(org.springframework.orm.hibernate3.HibernateConfigurationCallback)
public AnnotationSessionFactoryBuilder 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 AnnotationSessionFactoryBuilder setAnnotatedClasses(Class<?>... annotatedClasses)
AnnotationConfiguration.addAnnotatedClass(java.lang.Class)
public AnnotationSessionFactoryBuilder setAnnotatedPackages(String... annotatedPackages)
AnnotationConfiguration.addPackage(java.lang.String)
public AnnotationSessionFactoryBuilder 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 AnnotationSessionFactoryBuilder setResourcePatternResolver(ResourcePatternResolver resourcePatternResolver)
protected void scanPackages()
setPackagesToScan(java.lang.String...)
protected void postProcessMappings() throws org.hibernate.HibernateException
postProcessMappings
in class SessionFactoryBuilderSupport<AnnotationSessionFactoryBuilder>
org.hibernate.HibernateException
- in case of Hibernate initialization errorsConfiguration.buildMappings()
protected void postProcessConfiguration() throws org.hibernate.HibernateException
postProcessAnnotationConfiguration()
.
postProcessConfiguration
in class SessionFactoryBuilderSupport<AnnotationSessionFactoryBuilder>
org.hibernate.HibernateException
- in case of Hibernate initialization errorsConfiguration.buildMappings()
protected void postProcessAnnotationConfiguration() throws org.hibernate.HibernateException
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.
config
- the current AnnotationConfiguration object
org.hibernate.HibernateException
- in case of Hibernate initialization errors
|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |