복붙노트

[SPRING] Spring 데이터 REST : MongoDB 저장소에 대한 커스텀 질의

SPRING

Spring 데이터 REST : MongoDB 저장소에 대한 커스텀 질의

스프링 가이드에서 사용자 정의 쿼리를 작성하려고합니다 : 참조 4.4 사용자 정의 구현에 따라 REST를 사용하여 MongoDB 데이터에 액세스합니다. 하지만 내 사용자 지정 방법은 저장소의 REST 인터페이스 (/ user / search)에서 사용할 수 없습니다.

(예 : 브라우저에서 localhost : 8080 / user / search / GetByKidsAge? age = 1을 찾을 수 없음)

누군가 나를 알아 내고 제안을 해 줄 수 있을까요? 고마워요 !!

아래는 내 코드입니다.

UserRepositoryCustom.java

public interface UserRepositoryCustom {     

    public List<User> GetByKidsAge(@Param("age") int age);
}

UserRepositoryImpl.java

public class UserRepositoryImpl implements UserRepositoryCustom {

    @Override
    public List<User> GetByKidsAge(int age) {

        return /*perform query*/;

    }
}

UserRepository.java

@RepositoryRestResource(collectionResourceRel = "user", path = "user")
public interface UserRepository extends MongoRepository<User, String>, UserRepositoryCustom {

        List<User> findByLastName(@Param("name") String name);  
}

해결법

  1. ==============================

    1.이는 의도적으로 설계된 동작입니다. 수동으로 저장소 메소드 구현을 시작하자마자 GET 또는 POST가 옳은 HTTP 메소드인지 여부를 알 수 없다. 실행 방법은 멱등수인지 여부에 따라 다르다.

    이는 의도적으로 설계된 동작입니다. 수동으로 저장소 메소드 구현을 시작하자마자 GET 또는 POST가 옳은 HTTP 메소드인지 여부를 알 수 없다. 실행 방법은 멱등수인지 여부에 따라 다르다.

    따라서 사용자 정의 컨트롤러를 구현하고 적절한 HTTP 메소드를 사용하여 이러한 메소드를 노출하는 방법이 있습니다. 즉, 추적기에 이러한 메소드가 노출되어야하는 방식을 정의하는 수단을 제공하는 티켓이 있습니다.

  2. from https://stackoverflow.com/questions/23197207/spring-data-rest-custom-query-for-mongodb-repository by cc-by-sa and MIT license