##1.需求:
插入记录与提交请求是两个操作,在前端点保存的时候才会提交前面插入的数据。,用的是jdbctemplate 自己配置的transactionManager,pojo里存放的是manager和status
##2.代码片段
public static void complete(boolean flag,String userNo) throws SQLException {
List<JdbcTemplateTransactionPojo> list=map.get(userNo);
if(list!=null){
for(JdbcTemplateTransactionPojo pojo:list){
if(flag){
pojo.getTransactionManager().commit(pojo.getStatus());
}else{
pojo.getTransactionManager().rollback(pojo.getStatus());
}
}
map.remove(userNo);
}
}
程序运行到 pojo.getTransactionManager().commit(pojo.getStatus())的时候报错。。。。
##3.报错信息:
ERROR [http-nio-8084-exec-9]org.springframework.transaction.interceptor.TransactionInterceptor [544] -| Application exception overridden by rollback exception
java.lang.IllegalStateException: No value for key [org.apache.tomcat.jdbc.pool.DataSource@145706e{ConnectionPool[defaultAutoCommit=null; defaultReadOnly=null; defaultTransactionIsolation=-1; defaultCatalog=null; driverClassName=oracle.jdbc.driver.OracleDriver; maxActive=20; maxIdle=20; minIdle=5; initialSize=5; maxWait=60000; testOnBorrow=false; testOnReturn=false; timeBetweenEvictionRunsMillis=60000; numTestsPerEvictionRun=0; minEvictableIdleTimeMillis=300000; testWhileIdle=true; testOnConnect=false; password=********; url=jdbc:oracle:thin:@192.168.10.1:1521:shitan; username=metadata; validationQuery=null; validationQueryTimeout=-1; validatorClassName=null; validationInterval=3000; accessToUnderlyingConnectionAllowed=true; removeAbandoned=false; removeAbandonedTimeout=60; logAbandoned=false; connectionProperties=null; initSQL=null; jdbcInterceptors=null; jmxEnabled=true; fairQueue=true; useEquals=true; abandonWhenPercentageFull=0; maxAge=0; useLock=false; dataSource=null; dataSourceJNDI=null; suspectTimeout=0; alternateUsernameAllowed=false; commitOnReturn=false; rollbackOnReturn=false; useDisposableConnectionFacade=true; logValidationErrors=false; propagateInterruptState=false; ignoreExceptionOnPreLoad=false; useStatementFacade=true; }] bound to thread [http-nio-8084-exec-9]
大概没有悬赏不会有回答的。。。。。