2013-05-17 1 views
4

내가 가지고있는 저장소 메소드에서 Query annotation으로 어떻게 정렬을 도입 할 수 있는지보고 싶었다. 이미 구글이 코드를보고 여기에,하지만 난 그것을 작동 만들 수 없습니다봄 데이터 mongoRepository 질의 종류

@Query("find({state:'ACTIVE'}).sort({created:-1}).limit(1)") 
    Job findOneActiveOldest(); 

@Query("{ state:'ACTIVE', $orderby: {created:-1}, $limit:1 }") 
Job findOneActiveOldest(); 

내가 매김와 나는 그것을 만들 수 있다는 것을 알고 있지만, 어떤 경우에는 내가 페이지를 매기는 필요하지 않습니다, 그래서 궁금 해서요 쿼리 주석으로 만드는 법.

어떤 제안을 해주시겠습니까?

+0

문제는 무엇 당신은 당신이 당신의 저장소 방법을 사용 정렬 매개 변수를 만들 수 있습니다 페이지를 매기 할 필요가없는 경우? 왜 그걸 작동시키지 못하니? –

+0

JSONParse 예외는 첫 번째 경우에 발생하고 두 번째 것은 반환하지 않습니다. – paul

+0

질문이 아닙니까? http://stackoverflow.com/questions/10067169/query-with-sort-and-limt-in-spring-repository-interface – kabochkov

답변

12

@Query 주석으로는 가능하지 않다고 생각합니다.

@Query("{ state:'ACTIVE' }") 
Job findOneActive(Sort sort); 

및 사용 :

yourRepository.findOneActive(new Sort(Sort.Direction.DESC, "created")) 
+0

좋은 솔루션 감사합니다!. 아직도 나는 bas가 Mongo에 대한 질의 어노테이션 인 방법을 믿을 수 없다. – paul

+2

사실 거기에는 아직 개선의 여지가 있습니다. 좋은 점은 Spring 소스가 github에 있기 때문에 항상 코드를 향상시키고 pull 요청을 생성 할 수 있다는 것입니다. –

+1

페이지 매김을해야한다면 어떻게해야합니까? – Nailgun