spring3+mybatis+myql事务不生效

代码格式为
@Transactional(rollbackFor=java.lang.Exception.class, propagation=Propagation.REQUIRED, readOnly=false)
public void excuDevOrAppPagRel(DevPackageRln devPackageRln) throws Exception{
//具体操作,无try-catch操作
}

mysql所有表的引擎已改为innodb,也尝试设置过setautocommit=0,但是还是不回滚,求解。

终于搞定了,mysql 的autocommit有session和global级别的,把这俩都设置为false就可以了,业务不精啊

有没有在application.xml 配置一个transcation 的定义?

检查sessionFactory配置

我是在application中配置后,在注入的xml文件中指定用这个transcation,事务是能够保证的。直接用@模式注入,没有用过。

<bean id="txManager"
    class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
    <property name="dataSource" ref="ds" />
</bean>
使用声明式事物就可以,不用添加配置,ds为数据库的配置



<tx:annotation-driven transaction-manager="transactionManager" proxy-target-class="true" order="1" />

spring 配置文件中是这么配置的,没啥问题吧