事务的实现需要aop支持,所以需要配置aop:
前提先配置数据源
1.事务管理器配置
2.切面:切入点
3.事务通知,属性
4.dao层继承HibernateDaoSupport类即可 不需要注解
================================================================================================
sessionFactory:是mapperd的配置 如下:
<bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
<property name="dataSource">
<ref bean="dataSource" />
</property>
<property name="mappingLocations">
<list>
<value>classpath:mapping/ContractAttributeInfo.hbm.xml</value>
<value>classpath:mapping/PersonTaskInfo.hbm.xml</value>
</list>
</property>
<property name="hibernateProperties">
<props>
<prop key="hibernate.jdbc.batch_size">10</prop>
<prop key="hibernate.dialect">
org.hibernate.dialect.Oracle10gDialect
</prop>
<prop key="hibernate.show_sql">true</prop>
<prop key="hibernate.format_sql">false</prop>
<!-- <prop key="connection.autocommit">true</prop> 添加这个 -->
</props>
</property>
</bean>
1.
<bean id="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager">
<property name="sessionFactory" ref="sessionFactory" />
</bean>
2.
<aop:config>
<aop:pointcut id="allManagerMethod"
expression="execution(* com.chinalife.contract.*.action.*.*(..)) || execution(* com.chinalife.contract.*.service.impl.*.*(..))" />
<aop:advisor pointcut-ref="allManagerMethod" advice-ref="txAdvice" />
</aop:config>
3.
<!-- 事务的传播特性 -->
<tx:advice id="jdbctxAdvice" transaction-manager="jdbcTransactionManager">
<tx:attributes>
<tx:method name="save*" propagation="REQUIRED" />
<tx:method name="add*" propagation="REQUIRED" />
<tx:method name="create*" propagation="REQUIRED" />
<tx:method name="do*" propagation="REQUIRED" />
<tx:method name="execute*" propagation="REQUIRED" />
<tx:method name="modify*" propagation="REQUIRED" />
<tx:method name="update*" propagation="REQUIRED" />
<tx:method name="del*" propagation="REQUIRED" />
<tx:method name="delete*" propagation="REQUIRED" />
<tx:method name="*" propagation="REQUIRED" read-only="true" />
</tx:attributes>
</tx:advice>