Spring声明式事务异常不回滚的问题
Spring声明式事务异常不回滚的问题,详细描述如下:请大家帮忙看看
spring相关配置如下:
<bean id="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager">
<property name="sessionFactory">
<ref bean="sessionFactory"/>
</property>
</bean>
<!-- base dao begin -->
<bean id="baseDao" class="com.cube.baseprj.dao.BaseDaoImpl">
<property name="sessionFactory">
<ref local="sessionFactory" />
</property>
</bean>
<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="save*">PROPAGATION_REQUIRED,-DataAccessException</prop>
</props>
</property>
</bean>
<bean id="empServiceDAOProxy" parent="transactionBase" >
<property name="target">
<ref bean="empService" />
</property>
</bean>
<bean id="empService" class="com.cube.baseprj.service.employee.EmployeeServiceImpl" singleton="false">
<property name="dao" ref="baseDao" />
</bean>
EmployeeServiceImpl的saveEmp方法如下
public void saveEmp(Tuser user,Temployee employee){
dao.save(user);
dao.save(employee);
}
其中employee对象的数据在插入数据库时会出错,因为设置了一个过长的字段,但是执行时抛出异常,user照样保存了
请大家帮忙看看问题在哪?
spring相关配置如下:
<bean id="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager">
<property name="sessionFactory">
<ref bean="sessionFactory"/>
</property>
</bean>
<!-- base dao begin -->
<bean id="baseDao" class="com.cube.baseprj.dao.BaseDaoImpl">
<property name="sessionFactory">
<ref local="sessionFactory" />
</property>
</bean>
<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="save*">PROPAGATION_REQUIRED,-DataAccessException</prop>
</props>
</property>
</bean>
<bean id="empServiceDAOProxy" parent="transactionBase" >
<property name="target">
<ref bean="empService" />
</property>
</bean>
<bean id="empService" class="com.cube.baseprj.service.employee.EmployeeServiceImpl" singleton="false">
<property name="dao" ref="baseDao" />
</bean>
EmployeeServiceImpl的saveEmp方法如下
public void saveEmp(Tuser user,Temployee employee){
dao.save(user);
dao.save(employee);
}
其中employee对象的数据在插入数据库时会出错,因为设置了一个过长的字段,但是执行时抛出异常,user照样保存了
请大家帮忙看看问题在哪?
...全文
相关推荐
完美解决Spring声明式事务不回滚的问题
下面小编就为大家带来一篇完美解决Spring声明式事务不回滚的问题。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
Spring事务管理只对出现运行期异常进行回滚
Spring的事务管理默认只对出现运行期异常(java.lang.RuntimeException及其子类)进行回滚,需要了解更多Spring事务方面的知识,可详看本
Spring事务管理失效原因汇总
Spring声明式事务管理失效的原因,这里面是日常工作中踩过的坑,事务失效所产生的影响比较隐蔽,测试时易忽略,大多是在线上暴露,这可能是对Spring管理下的信任吧
Java Spring 事务回滚详解
主要介绍了java Spring事务回滚的相关资料,需要的朋友可以参考下
spring+mybatis的声明式事务
spring+mybatis的声明式事务


Web 开发
