diff --git a/src/main/java/org/apache/ibatis/builder/annotation/ProviderSqlSource.java b/src/main/java/org/apache/ibatis/builder/annotation/ProviderSqlSource.java index 325da40e8da..f9c721e05ec 100644 --- a/src/main/java/org/apache/ibatis/builder/annotation/ProviderSqlSource.java +++ b/src/main/java/org/apache/ibatis/builder/annotation/ProviderSqlSource.java @@ -16,6 +16,7 @@ package org.apache.ibatis.builder.annotation; import java.lang.reflect.Method; +import java.lang.reflect.Modifier; import java.util.HashMap; import java.util.Map; @@ -108,7 +109,9 @@ private SqlSource createSqlSource(Object parameterObject) { try { int bindParameterCount = providerMethodParameterTypes.length - (providerContext == null ? 0 : 1); String sql; - if (providerMethodParameterTypes.length == 0) { + if (Modifier.isStatic(providerMethod.getModifiers())) { + sql = (String) providerMethod.invoke(null); + } else if (providerMethodParameterTypes.length == 0) { sql = (String) providerMethod.invoke(providerType.newInstance()); } else if (bindParameterCount == 0) { sql = (String) providerMethod.invoke(providerType.newInstance(), providerContext);