问题描述
我正在使用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 (将#修改为@)