为了保持数据的一致性和完整性,在编程中通常会引用到事务的概念。这里就不对事务做一一讲解,大家可以看我前面的一篇讲事务的博客java JDBC事务和JTA事务详解。事务一般有两种:编程式事务和声明式事务;编程式事务就是将事务处理放在程序中,而声明式事务则是通过配置文件或者注解进行操作。
在Spring中我们通常使用的是声明式事务通过和Hibernate的集成去完成hibernate事务配置。
其实配置Hibernate事务的核心就一种:
(1)、配置SessionFactory;
(2)、配置事务容器;
(3)、配置事务规则;
(4)、配置事务入口;
下面我们看看通常Hibernate事务配置使用的几种方式:
第一种:代理;
<!-- 配置事务容器 --> <beanid="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager"> <propertyname="sessionFactory"ref="sessionFactory"/> </bean> <!-- 定义事务规则 --> <beanid="transactionProxy" class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean" abstract="true"> <propertyname="transactionManager"ref="transactionManager"/> <propertyname="transactionAttributes"> <props> <!-- ,回滚为-,不回滚为+ --> <propkey="add*">PROPAGATION_REQUIRED,-Exception</prop> <propkey=