2014-07-04 32 views
2

我有彈簧刀豆叫HostelDaoImpl。它使用休眠條件api來檢索結果。如何在spring bean中做hibernate分頁?

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

在哪裏存儲Criteria如果spring bean HostelDaoImpl是單例,如果我創建實例變量Criteria criteria它同時是不安全的。

在哪裏存儲標準以保證線程安全?

但是如果你知道在spring bean中實現hibernate分頁的更好方法,請提供它。

謝謝!

回答

1

我使用jQuery插件jqGrid的一個表中顯示的結果,這是非常easyly冬眠分頁。

http://jqgrid.com/

+0

謝謝。我需要這個觀點。 –

0

可以使用pageRequest進行分頁。 按照this link上的步驟操作。 此鏈接非常有幫助。該鏈接解釋了一切,直到JSP頁面。

相關問題