나는 봄돈 콩을 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
을 어딘가에 저장하고 사용자가 새 부분 데이터를 요청할 때마다 Criteria
의 setFirstResult
및 setMaxResults
번으로 전화를 걸고 싶습니다.
스프링 빈 HostelDaoImpl
이 싱글 톤인 경우 Criteria
을 저장할 위치에 인스턴스 변수 Criteria criteria
을 만들면 동시에 안전하지 않습니다.
기준을 저장하여 스레드로부터 안전하게 유지하려면?
봄 콩에서 최대 절전 모드를 달성하는 더 좋은 방법을 알고 있다면 그것을 제공하십시오.
감사합니다.
맞습니다! –