Criteria addOrder to order by trim(field)?

杀马特。学长 韩版系。学妹 提交于 2019-12-24 06:43:40

问题


All is in this question, here is my method.

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;
}

This is like

SELECT * FROM myTable ORDER BY orderField LIMIT rowNumMin, maxResult;

but I would like to obtain

SELECT * FROM myTable ORDER BY TRIM(orderField) LIMIT rowNumMin, maxResult;

How can I do this ?


回答1:


You'll have to create a custom subclass of org.hibernate.criterion.Order, and override the toSqlString method to generate the SQL order by clause you want.

And then use criteria.addOrder(new TrimOrder("orderField", true)).



来源:https://stackoverflow.com/questions/8987969/criteria-addorder-to-order-by-trimfield

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!