2009-11-09 4 views
2

최대 절전 모드 : 페이지 결과 및 결과 크기 알기

Hibernate를 사용하여 디렉토리 목록을 만들고 있는데 모든 쿼리 데이터가 필요 없도록하기 위해 다음을 사용합니다.

Criteria paging = sess.createCriteria(Principal.class); 
paging.setFirstResult((int) resultSetStart); 
paging.setMaxResults(resultSetSize); 
... 
List<Principal> principals = paging.list(); 

이제 제대로 작동합니다. 정확히 resultSetSize 결과를 추측합니다. 그러나 나는 구글과 같은 것을하고 싶다. '페이지 Y를 Y에서 보여주고있다.'

총 항목 수를 어떻게 알 수 있습니까? 아니면 전체 페이지 수입니까?

답변

0

일부 COUNT() 쿼리를 호출하지 않고도 모든 결과의 수를 얻을 수있는 방법은 없습니다. 그러니 당신은 (구글처럼) 약간의 근사치를해야하거나 사용하여 쿼리를 실행하기 전에 당신은 단지 전체 개체의 개수를 카운트 할 수있다 :

paging.setProjection(Projections.rowCount());

+0

그래서 내가 두 개의 쿼리, 하나를 만들 필요가 행 수, 실제 데이터에 대한 다른 ??? – malaverdiere

+0

정확한 결과를 원한다면 예. 그러나 성능에 대해 걱정하기 전에 기본 데이터베이스의 문서를 확인하십시오. 매우 효율적으로 수행 할 수 있기 때문입니다. – candiru