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照样保存了
请大家帮忙看看问题在哪?
解决方案 »
- jsp与ACCESS数据库,添加数据成功,修改不成功,新手,在线等!!!
- 请帮我注释一下分页查询的代码---先谢了!
- 高手快进,一个下午了,没有一个人回复.高手都龟隐了吗?
- 请大家看看这些新闻图片不变形是怎么实现的?急
- 谁能提供点 jsp或者java 操作/连接数据库方面的质料啊 (sql server的)
- 关于引用的一个简单问题。。。。。。
- package org.pan.util does not exist,明明在WEB-INF\classes\org\pan\util下所有java文件编译成了class文件了啊?
- 几个关于JSP编程的问题,望各位指教,谢谢!
- 初学jsp,有几个问题老是解决不了。请大侠帮助..
- 求 树 源码,或地址。
- 急求一个APPLET打印的功能
- 怎么办?
<bean id="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager">
<property name="sessionFactory" ref="sessionFactory"/>
</bean>
<tx:annotation-driven transaction-manager="transactionManager" />在需要事务管理的地方加@Transactional 注解。@Transactional 注解可以被应用于接口定义和接口方法、类定义和类的 public 方法上。但是,Spring团队的建议是你在具体的类(或类的方法)上使用。