1:<dl><dt><pre>public class <strong>AnnotationSessionFactoryBean</strong><dt>extends <a target=_blank title="class in org.springframework.orm.hibernate3">LocalSessionFactoryBean</a></dt>
Subclass of spring's standard LocalSessionFactoryBean for Hibernate3, supporting JDK 1.5+ annotation metadata for mappings. Requires the Hibernate3 Annotation add-on to be present.
2:实例代码
- <bean id="sessionFactory" class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean">
- <property name="dataSource">
- <ref bean="dataSource"/>
- </property>
- <property name="annotatedClasses">
- <list>
- <value>test.package.Foo</value>
- <value>test.package.Bar</value>
- </list>
- </property>
- <property name="annotatedPackages">
- <list>
- <value>test.package</value>
- </list>
- </property>
- </bean>
3:实际运用
图:User类
其中类应用了hibernate和Spring的注解
图:应用中的配置信息
<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> <p>补充:官方文档给出的示例http://static.springsource.org/spring/docs/2.5.6/api/org/springframework/orm/hibernate3/annotation/AnnotationSessionFactoryBean.html</p><h2><span size="-1" style="">org.springframework.orm.hibernate3.annotation</span> Class AnnotationSessionFactoryBean</h2><pre><a target=_blank href="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a> <img src="http://static.springsource.org/spring/docs/2.5.6/api/resources/inherit.gif" alt="extended by " /><a target=_blank href="http://static.springsource.org/spring/docs/2.5.6/api/org/springframework/orm/hibernate3/AbstractSessionFactoryBean.html" title="class in org.springframework.orm.hibernate3">org.springframework.orm.hibernate3.AbstractSessionFactoryBean</a> <img src="http://static.springsource.org/spring/docs/2.5.6/api/resources/inherit.gif" alt="extended by " /><a target=_blank href="http://static.springsource.org/spring/docs/2.5.6/api/org/springframework/orm/hibernate3/LocalSessionFactoryBean.html" title="class in org.springframework.orm.hibernate3">org.springframework.orm.hibernate3.LocalSessionFactoryBean</a> <img src="http://static.springsource.org/spring/docs/2.5.6/api/resources/inherit.gif" alt="extended by " /><strong>org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean</strong>
-
All Implemented Interfaces:
- BeanClassLoaderAware, DisposableBean, FactoryBean, InitializingBean, ResourceLoaderAware, PersistenceExceptionTranslator
public class AnnotationSessionFactoryBean extends LocalSessionFactoryBean implements ResourceLoaderAware
Subclass of Spring's standard LocalSessionFactoryBean for Hibernate, supporting JDK 1.5+ annotation metadata for mappings.
Note: This class requires Hibernate 3.2 or higher, 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>
-
Since:
- 1.2.2 Author:
- Juergen Hoeller See Also:
-
AbstractSessionFactoryBean.setDataSource(javax.sql.DataSource)
,LocalSessionFactoryBean.setHibernateProperties(java.util.Properties)
,setAnnotatedClasses(java.lang.Class[])
,setAnnotatedPackages(java.lang.String[])