StringBuffer hql = new StringBuffer("from TblLegalHoliday WHERE 1=1");
StringBuffer countHql = new StringBuffer(
"select count(*) from TblLegalHoliday WHERE 1=1");
if (holidayDateStart != null && holidayDateEnd != null) {
hql.append(" and holidayDate>=? and holidayDate <=?");
countHql.append(" and holidayDate>=? and holidayDate <=?");
}
if (!StringUtils.isEmpty(dateName)) {
hql.append(" and dateName like :dateName");
countHql.append(" and dateName like :dateName");
}
Session session = getHibernateTemplate().getSessionFactory()
.getCurrentSession();
Query query = session.createQuery(hql.toString());
Query query2 = session.createQuery(countHql.toString());
if (holidayDateStart != null && holidayDateEnd != null) {
query.setDate(0, DateUtils.parserStringToDate(holidayDateStart));
query.setDate(1, DateUtils.parserStringToDate(holidayDateEnd));
query2.setDate(0, DateUtils.parserStringToDate(holidayDateStart));
query2.setDate(1, DateUtils.parserStringToDate(holidayDateEnd));
}
if (!StringUtils.isEmpty(dateName)) {
query.setString("dateName", "%" + dateName + "%");
query2.setString("dateName", "%" + dateName + "%");
}
query.setFirstResult(startRow);
query.setMaxResults(pageSize);
pageBean.setList(query.list());
query.setFirstResult(startRow);
query.setMaxResults(pageSize);
int totalPage = ((Long) query2.uniqueResult()).intValue();
int pageIndex = (startRow / pageSize) + 1;
pageBean.setCurrentPage(pageIndex);
pageBean.setPageSize(pageSize);
int pageCount = (int) ((totalPage - 1 + pageSize) / pageSize);
if (pageCount > 0 && pageIndex > pageCount) {
pageIndex = pageCount;
}
pageBean.setTotalPage(pageCount);
System.out.println("***************** totalPage:" + totalPage);
pageBean.setAllRow(totalPage);