代码格式为
@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 配置文件中是这么配置的,没啥问题吧