> Java > java지도 시간 > JPQL 또는 HQL에서 MySQL의 LIMIT 절을 바꾸는 방법은 무엇입니까?

JPQL 또는 HQL에서 MySQL의 LIMIT 절을 바꾸는 방법은 무엇입니까?

Susan Sarandon
풀어 주다: 2024-12-15 04:16:09
원래의
825명이 탐색했습니다.

How to Replace MySQL's LIMIT Clause in JPQL or HQL?

JPQL 또는 HQL의 MySQL LIMIT 절에 대한 대안

Hibernate 3에서는 HQL의 MySQL LIMIT 절과 동등한 것이 직접 지원되지 않습니다. . 이전 버전의 Hibernate에서는 가능했지만 더 이상 기능이 아닙니다.

역사적 참고:

Hibernate 2에서는 HQL 파서가 엄격하게 준수를 강요하지 않았습니다. 표준 HQL 구문으로. 이로 인해 HQL 쿼리 내에 LIMIT 절과 같은 인식할 수 없는 조각을 포함할 수 있게 되었습니다. 그러나 Hibernate 3에 AST HQL 파서가 도입되면서 이러한 비표준 구성은 더 이상 허용되지 않습니다.

해결책:

쿼리 제한을 위해 권장되는 접근 방식 Hibernate 3 이상의 결과는 Query 인터페이스의 setMaxResults() 메소드를 사용하는 것입니다. 이 메서드를 사용하면 쿼리에서 반환할 최대 결과 수를 지정할 수 있습니다.

MySQL LIMIT 절의 동작을 에뮬레이트하려면 setMaxResults()를 setFirstResult() 메서드와 함께 사용할 수 있습니다. 예를 들어 쿼리에서 처음 20개 결과를 반환하려면 다음 코드를 사용합니다.

Query query = session.createQuery("from ATable order by aTableColumn desc");
query.setMaxResults(20);
query.setFirstResult(0);
로그인 후 복사

setMaxResults()는 LIMIT 절만큼 간결하지 않을 수 있지만 일관되고 지원되는 메커니즘을 제공합니다. JPQL 및 HQL의 쿼리 결과를 제한합니다.

위 내용은 JPQL 또는 HQL에서 MySQL의 LIMIT 절을 바꾸는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿