问题描述
- 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 配置文件中是这么配置的,没啥问题吧
时间: 2024-12-03 01:55:18