From ed11c9dbd7722fafbeeff90db1c2616384f5877d Mon Sep 17 00:00:00 2001 From: Mark Paluch Date: Mon, 21 Nov 2016 09:15:16 +0100 Subject: [PATCH] DATACMNS-939 - Do not create queries for static interface methods. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit We now no longer attempt query creation for static methods declared on a repository interface. This allows static method usage inside of repository interfaces. interface PersonRepository extends CrudRepository { static String createId() { // … } default Person findPerson() { return findOne(createId()); } } --- .../repository/core/support/DefaultRepositoryInformation.java | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/main/java/org/springframework/data/repository/core/support/DefaultRepositoryInformation.java b/src/main/java/org/springframework/data/repository/core/support/DefaultRepositoryInformation.java index dcaa267f2..f0d9a03a0 100644 --- a/src/main/java/org/springframework/data/repository/core/support/DefaultRepositoryInformation.java +++ b/src/main/java/org/springframework/data/repository/core/support/DefaultRepositoryInformation.java @@ -22,6 +22,7 @@ import static org.springframework.util.ReflectionUtils.*; import java.io.Serializable; import java.lang.reflect.GenericDeclaration; import java.lang.reflect.Method; +import java.lang.reflect.Modifier; import java.lang.reflect.Type; import java.lang.reflect.TypeVariable; import java.util.Collections; @@ -185,6 +186,7 @@ class DefaultRepositoryInformation implements RepositoryInformation { */ private boolean isQueryMethodCandidate(Method method) { return !method.isBridge() && !ReflectionUtils.isDefaultMethod(method) // + && !Modifier.isStatic(method.getModifiers()) // && (isQueryAnnotationPresentOn(method) || !isCustomMethod(method) && !isBaseClassMethod(method)); }