Springboot Mybatis事​​务回滚不起作用

问题描述

我正在使用Mybatis交易服务

 @Bean(name="sqlSession",destroyMethod="clearCache")
    public sqlSession sqlSession() throws Exception{
        //sqlSessionTemplate sessionTemplate = new sqlSessionTemplate(sqlSessionFactory());
        sqlSessionTemplate sessionTemplate = new sqlSessionTemplate(sqlSessionFactory(),ExecutorType.BATCH);
        return sessionTemplate;
    }
  @Bean
    public PlatformTransactionManager transactionManager() {
        DataSourceTransactionManager transactionManager = new DataSourceTransactionManager(dataSource());
        transactionManager.setGlobalRollbackOnParticipationFailure(false);
        return transactionManager;
    }

有我的交易设置。

@Transactional
    public void bulkInsert(int raffleNo,List<RaffleData> raffleDataList) throws DataAccessException {

        sqlSession batchSession = sqlSessionFactory.openSession(ExecutorType.BATCH,false);

        long startTime = System.currentTimeMillis();

        try{
            //batchSession = sqlSessionFactory.openSession(ExecutorType.BATCH,false);
            batchSession.insert("raffle.insertBulkRaffleData",raffleDataList);
            batchSession.commit();
        }catch(Throwable throwable){
            logger.error("Throwable ..... ");
            batchSession.rollback();
            throw new PersistenceException(throwable);
        }
        finally{
            batchSession.flushStatements();
            batchSession.close();
        }
        long endTime = System.currentTimeMillis();
        logger.error("Bulk Insert Time : " + (endTime-startTime)/1000 + "(ms)");
    }

但是回滚服务不起作用...我不知道原因 我正在使用mariadb和innodb Engine

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)