Hibernate5+Spring4整合

(1) pom.xml

 1 <!--Spring Object/Relational Mapping -->
 2 <dependency>
 3     <groupId>org.springframework</groupId>
 4     <artifactId>spring-orm</artifactId>
 5     <version>xxx</version>
 6 </dependency>
 7 <!--Hibernate Core -->
 8 <dependency>
 9     <groupId>org.hibernate</groupId>
10     <artifactId>hibernate-core</artifactId>
11     <version>xxx</version>
12 </dependency>

(2) hibernate.cfg.xml

 1 <?xml version="1.0" encoding="UTF-8"?>
 2 <!DOCTYPE hibernate-configuration PUBLIC
 3         "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
 4         "http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">
 5 <hibernate-configuration>
 6     <session-factory>
 7         <!-- SQL 方言(e.g. MySQL) -->
 8         <property name="dialect">org.hibernate.dialect.MySQL5Dialect</property>
 9         <!-- show_sql: 操作数据库时,会 向控制台打印sql语句 -->
10         <property name="show_sql">true</property>
11         <!-- format_sql: 打印sql语句前,会将sql语句先格式化 -->
12         <property name="format_sql">true</property>
13         <!-- 将Session与线程绑定。只有配置了该配置,才能使用getCurrentSession -->
14         <!-- 使用spring管理事务[org.springframework.orm.hibernate3.SpringSessionContext]管理事务时,不能设定 -->
15         <!-- <property name="hibernate.current_session_context_class">thread</property> -->
16         <!-- hbm2ddl.auto: 生成表结构的策略配置 update(最常用): 如果当前数据库中不存在表结构,那么自动创建表结构. 如果存在表结构,并且表结构与实体一致,那么不做修改 
17             如果存在表结构,并且表结构与实体不一致,那么会修改表结构.会保留原有列. create(很少):无论是否存在表结构.每次启动Hibernate都会重新创建表结构.(数据会丢失) 
18             create-drop(极少): 无论是否存在表结构.每次启动Hibernate都会重新创建表结构.每次Hibernate运行结束时,删除表结构. 
19             validate(很少):不会自动创建表结构.也不会自动维护表结构.Hibernate只校验表结构.如果表结构不一致将会抛出异常. -->
20         <property name="hbm2ddl.auto">update</property>
21         <!-- hibernate.connection.autocommit: 事务是否自动提交 -->
22         <property name="hibernate.connection.autocommit">false</property>
23         <!-- 注册实体映射类 -->
24         <mapping class="com.xxx.xxx" />
25     </session-factory>
26 </hibernate-configuration>

(3) application-domain.xml

1 <!-- 定义Hibernate的SessionFactory -->
2 <bean id="sessionFactory" class="org.springframework.orm.hibernate5.LocalSessionFactoryBean" lazy-init="false">
3     <property name="dataSource" ref="dataSource" />
4     <property name="configLocation" value="classpath:/META-INF/hibernate/hibernate.cfg.xml"></property>
5 </bean>
6 <!-- 配置Spring声明式事务 -->
7 <bean id="transactionManager" class="org.springframework.orm.hibernate5.HibernateTransactionManager">
8     <property name="sessionFactory" ref="sessionFactory"></property>
9 </bean>

(注) dataSource请自行配置

原文地址:https://www.cnblogs.com/storml/p/7843061.html