DATACMNS-939 - Do not create queries for static interface methods.
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<Person, String> {
static String createId() {
// …
}
default Person findPerson() {
return findOne(createId());
}
}
This commit is contained in:
committed by
Oliver Gierke
parent
8d7752a96b
commit
ed11c9dbd7
@@ -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));
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user