2014-07-04 3 views
2

나는 봄돈 콩을 HostelDaoImpl라고합니다. 결과를 검색하기 위해 최대 절전 기준 API를 사용합니다.Spring bean에서 최대 절전 모드 매김을하는 방법?

public class HostelDaoImpl extends AbstractGenericDao<Hostel, Integer> implements HostelDao { 

    public HostelDaoImpl() { 
     super(Hostel.class); 
    } 

    public List<Hostel> findHostelBy(HostelSearch hs) { 
      Criteria criteria = currenSession().createCriteria(Hostel.class); 
      criteria.setReadOnly(true); 

      Calendar beginDate = hs.getBeginDate(); 
      String country = hs.getCountry(); 

      if (beginDate != null) 
       criteria.add(Restrictions.le("beginDate", beginDate)); 

      if (country != null) { 
       criteria.add(Restrictions.eq("country", country)); 
      } 

      criteria.setProjection(Projections.rowCount()); 
      Integer foundHostelsCount = (Integer) criteria.uniqueResult(); 

      if (foundHostelsCount > 100) { 
       // do pagination 
      } 
    } 
} 

이제 이러한 주석 대신 페이지 매김이 필요합니다. Criteria을 한 번만 생성 한 다음 Criteria을 어딘가에 저장하고 사용자가 새 부분 데이터를 요청할 때마다 CriteriasetFirstResultsetMaxResults 번으로 전화를 걸고 싶습니다.

스프링 빈 HostelDaoImpl이 싱글 톤인 경우 Criteria을 저장할 위치에 인스턴스 변수 Criteria criteria을 만들면 동시에 안전하지 않습니다.

기준을 저장하여 스레드로부터 안전하게 유지하려면?

봄 콩에서 최대 절전 모드를 달성하는 더 좋은 방법을 알고 있다면 그것을 제공하십시오.

감사합니다.

답변

1

나는 테이블에 결과를 표시하는 jQuery 플러그인있는 jqGrid를 사용하고 있습니다를 지원하며 매김을 최대 절전 모드로 매우 easyly입니다.

http://jqgrid.com/

+0

감사합니다. 나는 이것을보기 위해 필요하다. –

0

당신은 페이지 매기기에 pageRequest를 사용할 수 있습니다. this link의 단계를 따르십시오. 이 링크는 매우 유용합니다. 링크는 JSP 페이지까지 모든 것을 설명합니다.