使用com.googlecode.genericdao.search对数据进行多条件排序
没找到search现成的方法,我就把源码里Sort构造方法的第二个参数看作是order by 后面的排序规则。
下面这条语句的意思是根据property1、property2两个字段排序,查出来的记录先按照property1=3,1,2的顺序排序,再按照property2降序排序。
search.addSort(new Sort(true,"case property1 when 3 then 1 when 1 then 2 else 2 end,property2",true));
这是com.googlecode.genericdao.search.Sort类的一种构造方法
/**
* If isCustomExpression is true, the "property" of this Sort is reckoned * as a free-form JPQL/HQL order-by expression. Reference properties by * wrapping them with curly braces ({}). * * <p>Here are some examples: * <pre> * new Sort(true, "cast({employeeno} as integer)"); * new Sort(true, "abs({prop1} - {prop2})"); * </pre> */ public Sort(boolean isCustomExpression, String property, boolean desc) { this.customExpression = isCustomExpression; this.property = property; this.desc = desc; }