一切都在这个问题中,这是我的方法。
public List<Object> listEntry(final int rowNumMin, final int maxResult,
final String orderField, final int orderSort) {
final Criteria requete = getSession().createCriteria(
getPersistentClass());
if(orderSort=1){
requete.addOrder(Order.asc(orderField));
} else {
requete.addOrder(Order.desc(orderField));
}
requete.setMaxResults(maxResult);
requete.setFirstResult(rowNumMin);
final List<Object> resultat = requete.list();
return resultat;
}
这就像
SELECT * FROM myTable ORDER BY orderField LIMIT rowNumMin, maxResult;
但我想获得
SELECT * FROM myTable ORDER BY TRIM(orderField) LIMIT rowNumMin, maxResult;
我该怎么做?
答案 0 :(得分:1)
您必须创建org.hibernate.criterion.Order
的自定义子类,并覆盖toSqlString
方法以生成所需的SQL order by
子句。
然后使用criteria.addOrder(new TrimOrder("orderField", true))
。