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