2014-01-14 3 views
10

Я добавил пользовательский метод к JPA хранилища, как описан на http://docs.spring.io/spring-data/data-jpa/docs/1.0.x/reference/html/#repositories.custom-implementationsПользовательского JPA метода хранилища опубликованной весны-данные-отдых

Насколько я мог видеть, этот метод не подвергаются, когда я использую весенне данное остальное. Есть ли способ опубликовать его как часть REST API, созданного при помощи Spring-data-rest (без создания Spring MVC Controller)?

+0

Я также сталкиваются с той же проблемой. Любая помощь будет оценена по достоинству. –

ответ

11

Я проверил базу кода - похоже, что они явно отключили пользовательские методы - не знаю почему. Вот соответствующая часть кода из 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); 
} 
+1

Интересно, можно ли обойти эту проверку обезьяной-патчем, чтобы она принимала пользовательские методы? – wakandan

+2

Мне очень хотелось бы услышать от авторов SDR, почему это так. Или укажите проблему с jira, чтобы разрешить это поведение. – Jay

+2

Оливер Гирке объяснил, почему здесь: http://stackoverflow.com/questions/25201306/implementing-custom-methods-of-spring-data-repository-and-exposing-them-through –

 Смежные вопросы

  • Нет связанных вопросов^_^