spring事务遇到建表语句时无法回退的问题
当spring事务遇到对于不支持事务的语句的执行时,则提交事务。下面程序出错也不会进行回退。
解决方案
将不支持事务的语句执行放到一个方法中,方法上加上注解
@Transactional(propagation = Propagation.NOT_SUPPORTED)
该注解表示该方法的传播机制是不支持事务,(若存在事务,则挂起当前事务,以非事务的方式执行)
若出现错误,则返回到上一层时当前事务恢复,进行回退
若不出现错误,执行完建表语句后,事务恢复,下面的程序也处于事务管理中