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

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

Susan Sarandon
Susan Sarandon원래의
2024-12-15 04:16:09835검색

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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.