方法一:
事务配置:applicatoncontext.xml
1<!-- 配置事务管理器 -->
2 <bean id="transactionManager"
3 class="org.springframework.orm.hibernate3.HibernateTransactionManager">
4 <property name="sessionFactory">
5 <ref local="sessionFactory" />
6 </property>
7 </bean>
8 <!---->
9 <bean id="txProxyTemplate" abstract="true"
10 class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean">
11 <property name="transactionManager">
12 <ref bean="transactionManager" />
13 </property>
14 <property name="transactionAttributes">
15 <props>
16 <prop key="query*">PROPAGATION_REQUIRED,readOnly,-Exception</prop>
17 <prop key="find*">PROPAGATION_REQUIRED,readOnly,-Exception</prop>
18 <prop key="add*">PROPAGATION_REQUIRED,-Exception</prop>
19 <prop key="update*">PROPAGATION_REQUIRED,-Exception</prop>
20 <prop key="delete*">PROPAGATION_REQUIRED,-Exception</prop>
21 <prop key="save*">PROPAGATION_REQUIRED,-Exception</prop>
22 </props>
23 </property>
24 </bean> 事务测试(BO继承事务):applicationcontext.xml
<bean id="SysJobBO" parent="txProxyTemplate">
<property name="target">
<bean
class="com.gzlt.sys.user.bo.impl.SysJobBOImpl">
<property name="commonDAO"
ref="CommonDAO">
</property>
</bean>
</property>
</bean> BOIMPL中:
@Override
public boolean updates(SysJob sysJob) throws Exception {
// TODO Auto-generated method stub
commonDAO.add(sysJob);
sysJob.setIsLeaf("453322222222222222ssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss");
commonDAO.add(sysJob);
return true;
} 如果事务未起作用,请查看:
1、action中的方法是不是不以add,update,。。开头。
2、有可能是抛出的异常将事务舍弃了。 如果try catch 异常为 applicationException 请改为 applicationException 试试。
方法二: