[SPRING] 봄 데이터의 날짜 별 제한 사항 JPA
SPRING봄 데이터의 날짜 별 제한 사항 JPA
제한 쿼리를 사용하여 쿼리 결과를 제한하려고합니다. 제한을 초과하면 쿼리가 예상대로 작동합니다.
@Query("SELECT a FROM DrmAdpodTimeSlot a where a.startTime > :startTime order by a.startTime desc")
public List<DrmAdpodTimeSlot> findByStartTime(@Param("startTime") Timestamp startTime);
그러나 다음과 같이 제한 (no.of records)을 사용하여 레코드를 제한하려고 할 때,
@Query("SELECT a FROM DrmAdpodTimeSlot a where a.startTime > :startTime order by a.startTime desc limit 2")
public List<DrmAdpodTimeSlot> findByStartTime(@Param("startTime") Timestamp startTime);
위의 쿼리에서 다음 오류가 발생했습니다.
Caused by: org.hibernate.hql.internal.ast.QuerySyntaxException: unexpected token: limit near line 1, column 110 [SELECT a FROM com.dooreme.domain.DrmAd
podTimeSlot a where a.startTime > :startTime order by a.startTime desc limit 2]
Spring 데이터 jpa 쿼리에서 제한 쿼리를 사용하여 주문을 어떻게 사용할 수 있습니까?
해결법
-
==============================
1.쿼리 주석에 페이지 매김 지원을 추가 할 수 없습니다. Spring Data JPA를 사용할 때 HQL / JPQL에 정렬 및 페이지 매김 기능을 추가 할 필요가 없습니다. 다음과 같이 Pageable을 두 번째 인수로 사용하십시오.
쿼리 주석에 페이지 매김 지원을 추가 할 수 없습니다. Spring Data JPA를 사용할 때 HQL / JPQL에 정렬 및 페이지 매김 기능을 추가 할 필요가 없습니다. 다음과 같이 Pageable을 두 번째 인수로 사용하십시오.
@Query("SELECT a FROM DrmAdpodTimeSlot a where a.startTime > :startTime") public List<DrmAdpodTimeSlot> findByStartTime(@Param("startTime") Timestamp startTime, Pageable pageable);
Pageable은 스프링 데이터 jpa doc의 말처럼 정렬과 페이징 기능을 포함하고있다.
따라서 다음 중 하나를 사용할 수 있습니다.
@Query("SELECT a FROM DrmAdpodTimeSlot a where a.startTime > :startTime") public Page<DrmAdpodTimeSlot> findByStartTime(@Param("startTime") Timestamp startTime, Pageable pageable);
또는:
@Query("SELECT a FROM DrmAdpodTimeSlot a where a.startTime > :startTime") public Slice<DrmAdpodTimeSlot> findByStartTime(@Param("startTime") Timestamp startTime, Pageable pageable);
또한:
from https://stackoverflow.com/questions/34640488/order-by-date-desc-limit-in-spring-data-jpa by cc-by-sa and MIT license
'SPRING' 카테고리의 다른 글
[SPRING] POST / PUT 중에 모든 객체에 대한 단일 사용자 정의 디시리얼라이저 또는 해당 객체로 삽입 된 전체 객체 (0) | 2019.02.20 |
---|---|
[SPRING] @RequestScoped bean의 데이터는 여러 브라우저에서 공유됩니다. (0) | 2019.02.20 |
[SPRING] 봄철 시작 이벤트 후 Tomcat (0) | 2019.02.20 |
[SPRING] @valid를 사용하여 스프링 검증 (0) | 2019.02.20 |
[SPRING] OS를 평가하는 봄 표현 (0) | 2019.02.20 |