2011-05-06 6 views
7

최대 절전 모드 쿼리의 maxresult 등록 정보는 어떻게 작동합니까? 아래의 예 :최대 절전 모드 제한 결과 조회

Query query = session.createQuery("from MyTable"); 
query.setMaxResults(10); 

이 데이터베이스에서 모든 행을 얻을 수 있습니까,하지만 그들 중 10 표시됩니다? 또는 이것은 SQL에서 limit과 동일합니다.

답변

11

LIMIT과 동일하지만 데이터베이스에 독립적입니다. 예를 들어, MS SQL Server에는 LIMIT이 없으므로, hibernate가이를 변환합니다. MySQL의 경우 쿼리에 LIMIT 10을 추가합니다.

따라서 항상 원시 sql 절 대신 query.setMaxResults(..)query.setFirstResult(..)을 사용하십시오.

0

SetMaxResults는 모든 행을 검색하고 설정된 행 수를 표시합니다. 필자의 경우에는 제한된 개수의 행을 검색 할 수있는 메소드를 찾지 못했습니다. 내 권장 사항은 쿼리를 직접 만들고 "rownum"또는 "limit"을 설정하는 것입니다.