/**
* 执行返回指定条数的 HQL
*
*@authorzhujie
*@paramhql
* 执行的 HQL
*@paramcurrentPage
* 开始页
*@parampageSize
* 返回的条数
* 执行返回指定条数的 HQL
*
*@authorzhujie
*@paramhql
* 执行的 HQL
*@paramcurrentPage
* 开始页
*@parampageSize
* 返回的条数
*@return
*/
publicListexecuteQueryHql(finalStringhql,finalintcurrentPage,
finalintpageSize){
return(List)this.getHibernateTemplate().executeFind(
newHibernateCallback(){
publicObjectdoInHibernate(Sessionsession)
throwsHibernateException,SQLException{
Queryquery=session.createQuery(hql);
if(currentPage==0&&pageSize==0){
returnquery.list();
}
if(currentPage>0)
query.setFirstResult((currentPage-1)*pageSize);
if(pageSize>0)
query.setMaxResults(pageSize);
*/
publicListexecuteQueryHql(finalStringhql,finalintcurrentPage,
finalintpageSize){
return(List)this.getHibernateTemplate().executeFind(
newHibernateCallback(){
publicObjectdoInHibernate(Sessionsession)
throwsHibernateException,SQLException{
Queryquery=session.createQuery(hql);
if(currentPage==0&&pageSize==0){
returnquery.list();
}
if(currentPage>0)
query.setFirstResult((currentPage-1)*pageSize);
if(pageSize>0)
query.setMaxResults(pageSize);
returnquery.list();
}
});
}
}
});
}
public PageModel findAllItem(final int pageNo, final int pageSize, final String queryStr) { PageModel pageModel = null; List itemList = new ArrayList(); try { if (queryStr != null && queryStr.trim().length() != 0) { itemList = this.getHibernateTemplate().executeFind(new HibernateCallback() { public Object doInHibernate(Session session) throws HibernateException, SQLException { return session.createQuery("from Item a where a.itemNo like ? or a.itemName like ? order by a.itemNo") .setParameter(0, queryStr + "%") .setParameter(1, queryStr + "%") .setFirstResult((pageNo - 1) * pageSize) .setMaxResults(pageSize) .list(); } }); }else { itemList = this.getHibernateTemplate().executeFind(new HibernateCallback() { public Object doInHibernate(Session session) throws HibernateException, SQLException { return session.createQuery("select a from Item a join fetch a.category b join fetch a.unit c order by a.itemNo") .setFirstResult((pageNo - 1) * pageSize)//从第0条开始 .setMaxResults(pageSize)//显示多少天 .list(); } }); } pageModel = new PageModel(); pageModel.setPageNo(pageNo); pageModel.setPageSize(pageSize); pageModel.setList(itemList); pageModel.setTotalRecords(getTotalRecords(queryStr)); }catch(Exception e) { //记录日志,log4j等...... e.printStackTrace(); throw new AppException("drp.database.item.error.findallitem"); } return pageModel; } private int getTotalRecords(String queryStr) { Long totalRecords = 0L; if (queryStr != null && queryStr.trim().length() != 0) { //采用模板取得总记录数据 totalRecords = (Long)this.getHibernateTemplate().find("select count(*) from Item a where a.itemNo like ? or a.itemName like ?", new Object[]{queryStr + "%", queryStr + "%"}).get(0); }else { //采用session取得总记录数 totalRecords = (Long)this.getSession().createQuery("select count(*) from Item a").uniqueResult(); } return totalRecords.intValue(); }