spring 事务 不回滚
执行中抛出 sql异常 而没有抛出 spring的 dataaccess 异常
<bean id="blServise" class="com.zyb.jsh.bl.BLTestDaoAction">
<property name="commonDao">
<ref bean="CommonDao"/>
</property>
</bean>
<bean id="transactionManager"
class="org.springframework.orm.hibernate3.HibernateTransactionManager">
<property name="sessionFactory">
<ref local="JSHSessionFactory"/>
</property>
</bean>
<!-- 利用继承的思想简化配置,要把abstract="true" -->
<bean id="transactionBase"
class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean"
lazy-init="true" abstract="true">
<!-- 配置事务管理器 -->
<property name="transactionManager">
<ref bean="transactionManager" />
</property>
<!-- 配置事务属性 -->
<property name="transactionAttributes">
<props>
<prop key="test*">PROPAGATION_REQUIRED</prop>
</props>
</property>
<property name="proxyTargetClass">
<value>true</value>
</property>
</bean>
<bean id="blServiceProxy" parent="transactionBase">
<property name="target">
<ref local="blServise" />
</property>
</bean>
测试类
package com.zyb.jsh.bl;
import com.zyb.jsh.db.BaseSHDao;
import com.zyb.jsh.db.UserInfo;
public class BLTestDaoAction {
private BaseSHDao commonDao;
private UserInfo user;
public String testDao() {
String loginResult = "failure";
BaseSHDao commonDaoIns = this.getCommonDao();
commonDaoIns.insert(this.user);
//插入同样的数据违反,唯一性约束,抛出异常
commonDaoIns.insert(this.user);
return loginResult;
}
public BaseSHDao getCommonDao() {
return commonDao;
}
public void setCommonDao(BaseSHDao commonDao) {
this.commonDao = commonDao;
}
public UserInfo getUser() {
return user;
}
public void setUser(UserInfo user) {
this.user = user;
}
}
抛出的异常
com.ibm.db2.jcc.a.SqlException: DB2 SQL error: SQLCODE: -803, SQLSTATE: 23505, SQLERRMC: 2;ADMINISTRATOR.USER
com.ibm.db2.jcc.a.tf.d(tf.java:1397)
com.ibm.db2.jcc.b.jb.l(jb.java:367)
com.ibm.db2.jcc.b.jb.a(jb.java:64)
com.ibm.db2.jcc.b.w.a(w.java:48)
com.ibm.db2.jcc.b.dc.b(dc.java:302)
com.ibm.db2.jcc.a.uf.cb(uf.java:1739)
com.ibm.db2.jcc.a.uf.d(uf.java:2339)
com.ibm.db2.jcc.a.uf.Y(uf.java:544)
com.ibm.db2.jcc.a.uf.executeUpdate(uf.java:527
。。。。。