/**
*执行返回指定条数的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();
}