diff --git a/jdbcmapper/src/main/java/com/moparisthebest/jdbc/codegen/JdbcMapperProcessor.java b/jdbcmapper/src/main/java/com/moparisthebest/jdbc/codegen/JdbcMapperProcessor.java index 25581e0..685a83b 100644 --- a/jdbcmapper/src/main/java/com/moparisthebest/jdbc/codegen/JdbcMapperProcessor.java +++ b/jdbcmapper/src/main/java/com/moparisthebest/jdbc/codegen/JdbcMapperProcessor.java @@ -216,6 +216,7 @@ public class JdbcMapperProcessor extends AbstractProcessor { if (++count != numParams) w.write(", "); } + final Map unusedParams = new HashMap(paramMap); // throws? w.write(")"); @@ -242,6 +243,7 @@ public class JdbcMapperProcessor extends AbstractProcessor { processingEnv.getMessager().printMessage(Diagnostic.Kind.ERROR, String.format("@JdbcMapper.SQL sql has bind param '%s' not in method parameter list", paramName), methodElement); continue; } + unusedParams.remove(paramName); final String inColumnName = bindParamMatcher.group(2); if(inColumnName == null) { bindParams.add(bindParam); @@ -270,6 +272,10 @@ public class JdbcMapperProcessor extends AbstractProcessor { } bindParamMatcher.appendTail(sb); sqlStatement = sb.toString(); + + for(final Map.Entry unusedParam : unusedParams.entrySet()) { + processingEnv.getMessager().printMessage(Diagnostic.Kind.ERROR, String.format("@JdbcMapper.SQL method has unused parameter '%s'", unusedParam.getKey()), unusedParam.getValue()); + } } final SQLParser parsedSQl = parser.parse(sqlStatement);