当前位置: 代码迷 >> Java Web开发 >> spring mvc事宜无法回滚
  详细解决方案

spring mvc事宜无法回滚

热度:66   发布时间:2016-04-16 22:03:39.0
spring mvc事务无法回滚
数据库mysql,这样的代码和配置不知道怎么无法回滚,数据被正确更新掉了,请问这是哪里错了?

代码及调用:@Controller->@Service
@Transactional
public void test() {
jdbcTemplate.execute("update test set name='4444' where id=1");
throw new RuntimeException("1111");
}


配置:
<bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate">
<property name="dataSource" ref="dataSource" />
</bean>

<bean id="transactionManager"
class="org.springframework.jdbc.datasource.DataSourceTransactionManager" >
<property name="dataSource" ref="dataSource" />
</bean>

<tx:annotation-driven transaction-manager="transactionManager" />

------解决方案--------------------
引用:
Quote: 引用:

<aop:config>  配置了没有?


用的注解了,这个不需要配的吧?

那你是不是陪了<context:component-scan> 却没有把test 所在路径配进去啊!
------解决方案--------------------
hibernate里面用注解?我很不习惯,配置就是配置,代码就是代码,代码配置混在一起,可读性很差

个人认为JDK1.6以后的annotation功能是完全错误的发展方向
------解决方案--------------------
<bean id="transactionManager"
        class="org.springframework.jdbc.datasource.DataSourceTransactionManager" >
        <property name="dataSource" ref="dataSource" />
    </bean>
把 你的  transactionManager 的配置  改为 下面 这样 就可以了  至于sessionFactory  你自己配一个
<bean id="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager">
<property name="sessionFactory" ref="sessionFactory" />
</bean>
------解决方案--------------------
这样注解 @Transactional(rollbackFor=Exception.class)
然后在方法中把异常抛出,不要捕获异常。
  相关解决方案