1.声明式事务配置
*配置SessionFactory
*配置事务管理器
*事务的传播特性
*哪些类哪些方法使用事务
2.编写业务逻辑方法
*继承HibernateDaoSupport类,使用HibernateTemplate来持久化,HibernateTemplate是Hibernate Session的轻量级封装
*默认情况下运行期异常才会回滚(包括继承了RuntimeException的子类)
*关于事务边界的设置,通常设置到业务层,不要添加到dao上。
<!-- 配置事务管理器 -->
<bean id="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager">
<property name="sessionFactory">
<ref bean="sessionFactory"/>
</property>
</bean>
<!-- 配置事务的传播特性 -->
<tx:advice id="txAdvice" transaction-manager="transactionManager">
<tx:attributes>
<tx:method name="add*" propagation="REQUIRED"/>
<tx:method name="del*" propagation="REQUIRED"/>
<tx:method name="modify*" propagation="REQUIRED"/>
<tx:method name="*" read-only="true"/>
</tx:attributes>
</tx:advice>
<!-- 那些类的哪些方法参与事务 -->
<aop:config>
<aop:pointcut id="allManagerMethod" expression="execution(* com.jonsion.manager.*.*(..))"/>
<aop:advisor pointcut-ref="allManagerMethod" advice-ref="txAdvice"/>
</aop:config>
</beans>
*配置SessionFactory
*配置事务管理器
*事务的传播特性
*哪些类哪些方法使用事务
2.编写业务逻辑方法
*继承HibernateDaoSupport类,使用HibernateTemplate来持久化,HibernateTemplate是Hibernate Session的轻量级封装
*默认情况下运行期异常才会回滚(包括继承了RuntimeException的子类)
*关于事务边界的设置,通常设置到业务层,不要添加到dao上。
<!-- 配置事务管理器 -->
<bean id="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager">
<property name="sessionFactory">
<ref bean="sessionFactory"/>
</property>
</bean>
<!-- 配置事务的传播特性 -->
<tx:advice id="txAdvice" transaction-manager="transactionManager">
<tx:attributes>
<tx:method name="add*" propagation="REQUIRED"/>
<tx:method name="del*" propagation="REQUIRED"/>
<tx:method name="modify*" propagation="REQUIRED"/>
<tx:method name="*" read-only="true"/>
</tx:attributes>
</tx:advice>
<!-- 那些类的哪些方法参与事务 -->
<aop:config>
<aop:pointcut id="allManagerMethod" expression="execution(* com.jonsion.manager.*.*(..))"/>
<aop:advisor pointcut-ref="allManagerMethod" advice-ref="txAdvice"/>
</aop:config>
</beans>