一尘不染

Spring-Data-Rest发布的自定义JPA存储库方法

spring

据我所知,当我使用spring-data-rest时,此方法没有公开。有什么方法可以将其发布为spring-data-rest生成的REST API的一部分(无需自己创建Spring MVC Controller)?


阅读 348

收藏
2020-04-19

共1个答案

一尘不染

我检查了代码库-似乎他们已明确禁用了自定义方法-不知道为什么。这是来自org.springframework.data.repository.core.support.DefaultRepositoryInformation的相关代码

@Override
public Set<Method> getQueryMethods() {

    Set<Method> result = new HashSet<Method>();

    for (Method method : getRepositoryInterface().getMethods()) {
        method = ClassUtils.getMostSpecificMethod(method, getRepositoryInterface());
        if (isQueryMethodCandidate(method)) {
            result.add(method);
        }
    }

    return Collections.unmodifiableSet(result);
}

/**
 * Checks whether the given method is a query method candidate.
 * 
 * @param method
 * @return
 */
private boolean isQueryMethodCandidate(Method method) {
    return isQueryAnnotationPresentOn(method) || !isCustomMethod(method) && !isBaseClassMethod(method);
}
2020-04-19