Spring和hibernate集成之sessionFactory和transactionManager

来源:互联网 发布:福彩分析软件 编辑:程序博客网 时间:2024/05/16 07:56
Spring跟hibernate的集成,主要是通过bean方式管理sessionFactory和transactionManager,即将这两种hibernate中重要的东西托管给Spring进行管理。

sessionFactory:
spring提供了两种sessionFactory的具体实现


第一种LocalSessionFactoryBean。
  通过hibernate的配置文件hibernate.cfg.xml进行ORM。
<!-- 通过配置文件配置sessionFactory --><bean id="sessionFactory"class="org.springframework.orm.hibernate3.LocalSessionFactoryBean"><property name="dataSource" ref="dataSource" /><property name="mappingResources"><list><value>resources/conf/hibernate.hbm.xml</value></list></property><property name="hibernateProperties"><props><prop key="hibernate.dialect">org.hibernate.dialect.MySQL5Dialect</prop><prop key="hibernate.hbm2ddl.auto">update</prop><prop key="hibernate.show_sql">true</prop><prop key="hibernate.format_sql">false</prop></props></property></bean>




第二种AnnotationSessionFactoryBean
private Class[] annotatedClasses;private String[] annotatedPackages;private String[] packagesToScan;
通过扫描或者配置java文件(通过Annotation,如Entity,Table等的配置)进行ORM。
配置sessionFactory
<!-- 通过annotationSessionFactoryBean使用annotation --><bean id="sessionFactory"class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean"><property name="dataSource" ref="dataSource" /><property name="annotatedClasses"><list><value>com.purchase.base.entity.Factory</value></list></property><property name="hibernateProperties"><props><prop key="hibernate.dialect">org.hibernate.dialect.MySQL5Dialect</prop><prop key="hibernate.hbm2ddl.auto">update</prop><prop key="hibernate.show_sql">true</prop><prop key="hibernate.format_sql">false</prop></props></property></bean>

entity编写

package com.purchase.base.entity;import javax.persistence.Column;import javax.persistence.Entity;import javax.persistence.Id;import javax.persistence.Table;import com.purchase.common.entity.CommonEntity;@Entity@Table(name="table_factory")public class Factory extends CommonEntity {@Idprivate String code;@Column(name="name")private String name;//.....get setter}




transactionManager
Spring针对与hibernate\jpa\ibatas等提供了不同的具体实现。在配置文件中配置相应的transactionManager即可

<!-- 事务控制 --><bean id="transactionManager"class="org.springframework.orm.hibernate3.HibernateTransactionManager"><property name="sessionFactory" ref="sessionFactory" /></bean>

至于如何通过HibernateTransactionManager进行事务控制,请参考另外一篇文章:http://blog.csdn.net/yfei_sjq/article/details/9134489

原创粉丝点击