1.综合运用eq between 和动态查询
public PaginationSupport getCsSubsidyVerifysByDwr(DwrBackParams params) {
int pageSize = params.getLimit();
int currentPage = params.getStart() / pageSize + 1;
boolean isRecount = params.isReCount();
Map map = this.dwrParams2Map(params);
String fromDate = (String) map.get("fromDate");
String toDate = (String) map.get("toDate");
String subsidyType = (String) map.get("subsidyType");
String invoiceNo = (String) map.get("invoiceNo");
String personName = (String) map.get("personName");
String personNo = (String) map.get("personNo");
String orgCd = (String) map.get("orgCd");
String auditIsSucc = (String) map.get("auditIsSucc");
Timestamp from = DateOperator.stringToTimestampStar(fromDate);
Timestamp to = DateOperator.stringToTimestampEnd(toDate);
DetachedCriteria criteria = DetachedCriteria.forClass(CsSubsidyVerify.class);
criteria
.add(Restrictions.eq("dataState", DatabaseConstants.DATA_STATE_DEFAULT))
.add(Restrictions.eq("businessYear", getBussinesYear()))
.add(Restrictions.between("inputDate", from, to));
if (StringUtils.isNotBlank(auditIsSucc))
criteria.add(Restrictions.eq("auditIsSucc", auditIsSucc));
if (StringUtils.isNotBlank(subsidyType))
criteria.add(Restrictions.eq("subsidyType", subsidyType));
if (StringUtils.isNotBlank(invoiceNo))
criteria.add(Restrictions.like("invoiceNo", invoiceNo, MatchMode.START));
if (StringUtils.isNotBlank(personNo))
criteria.add(Restrictions.like("personNo", personNo, MatchMode.START));
if (StringUtils.isNotBlank(personName))
criteria.add(Restrictions.like("personName", personName, MatchMode.START));
if (StringUtils.isNotBlank(orgCd))
criteria.add(Restrictions.like("orgCd", orgCd, MatchMode.START));
PaginationSupport ps = dao.findPageByCriteria(criteria,
Order.desc("inputDate"), currentPage, pageSize, isRecount);
return ps;
}