首页 > 解决方案 > 没有为 SQL 参数“orgName”提供值:此 SqlParameterSource 为空

问题描述

org.springframework.dao.InvalidDataAccessApiUsageException:没有为 SQL 参数“orgName”提供值:这个 SqlParameterSource 在 org.springframework.jdbc.core.namedparam.NamedParameterUtils.buildValueArray(NamedParameterUtils.java:355) 在 org.springframework.jdbc 处为空.core.namedparam.NamedParameterJdbcTemplate.getPreparedStatementCreator(NamedParameterJdbcTemplate.java:417) at org.springframework.jdbc.core.namedparam.NamedParameterJdbcTemplate.getPreparedStatementCreator(NamedParameterJdbcTemplate.java:391) at org.springframework.jdbc.core.namedparam.NamedParameterJdbcTemplate.query (NamedParameterJdbcTemplate.java:215) 在 org.springframework.jdbc.core.namedparam.NamedParameterJdbcTemplate.query(NamedParameterJdbcTemplate.java:227) 在 com.suppression.batch.dao.SuppressionListDaoImpl。getAllSuppressionList(SuppressionListDaoImpl.java:141) at com.suppression.batch.dao.SuppressionListDaoImpl$$FastClassBySpringCGLIB$$b7b390f9.invoke() at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218) at org. springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:749) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163) at org.springframework.dao.support.PersistenceExceptionTranslationInterceptor.invoke( PersistenceExceptionTranslationInterceptor.java:139) 在 org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186) 在 org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:688) 在 com.suppression .batch.dao.SuppressionListDaoImpl$$EnhancerBySpringCGLIB$$c0a805c7.getAllSuppressionList() at com.suppression.batch.app.SuppressionListItemReader.read(SuppressionListItemReader.java:55) at com.suppression.batch.app.SuppressionListItemReader.read(SuppressionListItemReader.java :1) 在 org.springframework.batch.core.step.item.SimpleChunkProvider.read(SimpleChunkProvider.java:161) 的 org.springframework.batch.core.step.item.SimpleChunkProvider.doRead(SimpleChunkProvider.java:94) org.springframework.batch.core.step.item.SimpleChunkProvider$1.doInIteration(SimpleChunkProvider.java:119) at org.springframework.batch.repeat.support.RepeatTemplate.getNextResult(RepeatTemplate.java:375) at org.springframework.batch .repeat.support.RepeatTemplate.executeInternal(RepeatTemplate.java:215) 在 org.springframework.batch.repeat。support.RepeatTemplate.iterate(RepeatTemplate.java:145) 在 org.springframework.batch.core.step.item.SimpleChunkProvider.provide(SimpleChunkProvider.java:113) 在 org.springframework.batch.core.step.item.ChunkOrientedTasklet。在 org.springframework.batch.core.step.tasklet.TaskletStep$ChunkTransactionCallback 的 org.springframework.batch.core.step.tasklet.TaskletStep$ChunkTransactionCallback.doInTransaction(TaskletStep.java:407) 执行(ChunkOrientedTasklet.java:69)。 doInTransaction(TaskletStep.java:331) at org.springframework.transaction.support.TransactionTemplate.execute(TransactionTemplate.java:140) at org.springframework.batch.core.step.tasklet.TaskletStep$2.doInChunkContext(TaskletStep.java:273 ) 在 org.springframework.batch.core.scope.context.StepContextRepeatCallback.doInIteration(StepContextRepeatCallback.java:82) 在 org.springframework.batch.repeat.support.RepeatTemplate.executeInternal(RepeatTemplate.java:215) 在 org.springframework.batch 的 org.springframework.batch.repeat.support.RepeatTemplate.getNextResult(RepeatTemplate.java:375) .repeat.support.RepeatTemplate.iterate(RepeatTemplate.java:145) at org.springframework.batch.core.step.tasklet.TaskletStep.doExecute(TaskletStep.java:258) at org.springframework.batch.core.step.AbstractStep .execute(AbstractStep.java:203) 在 org.springframework.batch.core.job.SimpleStepHandler.handleStep(SimpleStepHandler.java:148) 在 org.springframework.batch.core.job.AbstractJob.handleStep(AbstractJob.java:399) ) 在 org.springframework.batch.core.job.SimpleJob.doExecute(SimpleJob.java:135) 在 org.springframework.batch.core.job.AbstractJob.execute(AbstractJob.java:313) 在 org.springframework.batch.core.launch.support.SimpleJobLauncher$1.run(SimpleJobLauncher.java:144) at org.springframework.core.task.SyncTaskExecutor.execute(SyncTaskExecutor.java:50) at org.springframework.batch.core.launch .support.SimpleJobLauncher.run(SimpleJobLauncher.java:137) 在 sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 在 sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 在 sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl .java:43) 在 org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:343) 在 org.springframework.aop.framework 的 java.lang.reflect.Method.invoke(Method.java:498)。 org.springframework.aop.framework 上的 ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:198)。org.springframework.batch.core.configuration.annotation.SimpleBatchConfiguration$PassthruAdvice.invoke(SimpleBatchConfiguration.java:127) 中的 ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)。 java:186) at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:212) at com.sun.proxy.$Proxy42.run(Unknown Source) at org.springframework.boot.autoconfigure.batch.JobLauncherCommandLineRunner .execute(JobLauncherCommandLineRunner.java:214) 在 org.springframework.boot.autoconfigure.batch.JobLauncherCommandLineRunner.executeLocalJobs(JobLauncherCommandLineRunner.java:186) 在 org.springframework.boot.autoconfigure.batch.JobLauncherCommandLineRunner。launchJobFromProperties(JobLauncherCommandLineRunner.java:172) at org.springframework.boot.autoconfigure.batch.JobLauncherCommandLineRunner.run(JobLauncherCommandLineRunner.java:166) at org.springframework.boot.SpringApplication.callRunner(SpringApplication.java:813) at org.springframework .boot.SpringApplication.callRunners(SpringApplication.java:797) at org.springframework.boot.SpringApplication.run(SpringApplication.java:324) at org.springframework.boot.SpringApplication.run(SpringApplication.java:1260) at org. springframework.boot.SpringApplication.run(SpringApplication.java:1248)813) 在 org.springframework.boot.SpringApplication.callRunners(SpringApplication.java:797) 在 org.springframework.boot.SpringApplication.run(SpringApplication.java:324) 在 org.springframework.boot.SpringApplication.run(SpringApplication.java :1260) 在 org.springframework.boot.SpringApplication.run(SpringApplication.java:1248)813) 在 org.springframework.boot.SpringApplication.callRunners(SpringApplication.java:797) 在 org.springframework.boot.SpringApplication.run(SpringApplication.java:324) 在 org.springframework.boot.SpringApplication.run(SpringApplication.java :1260) 在 org.springframework.boot.SpringApplication.run(SpringApplication.java:1248)在此处输入图像描述

标签: javaspringspring-batchmysql-workbenchdao

解决方案


得到了答案……

映射paramMap = new HashMap(); paramMap .put("orgName", orgName);

        suppressedCampaignList = namedParameterJdbcTemplate.query(sql, **paramMap**, new RowMapper<SuppressionListData>() {}

需要在 namedParameterJdbcTemplate.QUERY() 中传递 MAP 变量...


推荐阅读