spring+hibernate事务不回滚

来源:百度知道 编辑:UC知道 时间:2024/06/30 10:51:09
我用ssh组合的一个小程序,在事物处理中,我专门给事物设置了一个错误要他抛出异常。但是怎么试都不能让事物回滚,请教一下。以下是代码
public boolean executeTransaction()
{
try
{
User user = new User();
user.setAge(111);
user.setFirstName("能");
user.setLastName("不能");
this.userDAO.addUser(user);
user = this.userDAO.findUserById(2);
user
.setLastName("星星星星星星星星星星星星星星星星星星星星星星星星星星星星星星星星星星星星星星星星星星星星星星星星星星星星星星星星星星星星星星星星星星");
this.userDAO.updateUser(user);
return true;
} catch (Exception ex)
{
//TransactionAspectSupport.currentTransactionStatus()
//.setRollbackOnly();
throw new RuntimeException();
}

}
其中save是正确的,update是错误的。但是执行后没有将save回滚。(若数据正确则正常执行)请教大家,在网上看了很多解决办法都不行。下面是配置文件:
<bean id="trsactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager">
<property name="sessionFactory" ref=&

你的配置并没有错
所有execute开头的方法都会进入事物的切面。

但是你要注意了,你的事物是配置在transactionDAO中的,也就是transactionDAO中的以execute开头的方法才会参与事物,说道这知道怎么改了么?

你spring配置文件中其他的类不知道什么样的 属性等都不清楚,不方便该啊,你现在的事物是编在transactionDAO中的,你在spring配置文件中生命一个类型是executeTransaction的bean,然后把他赋值给userManager的target
如果还不可以把你代码发给我 ,你的项目命名有点问题!executeTransaction到底是哪个层的啊,又有dao biz的,乱!
450134117@qq.com

你都没有设置事务管理。。。。。它当然没反映。

<prop key="execute*">PROPAGATION_REQUIRED</prop>

把这个换成

<!-- 增(以save开头的方法)、删(以del开头的方法)、改(以update开头的方法)事务管理 -->
<prop key="save*">PROPAGATION_REQUIRED</prop>
<prop key="update*">PROPAGATION_REQUIRED</prop>
<prop key="del*">PROPAGATION_REQUIRED</prop>

你事务没有应用上啊,没有见你把事务织入到方法上啊 ,你那个仅仅是注入进入,并没有用到aop