Критерии addOrder для заказа по отделке (поле)? - PullRequest
1 голос
/ 24 января 2012

Все в этом вопросе, вот мой метод.

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;

Как я могу это сделать?

1 Ответ

1 голос
/ 18 февраля 2012

Вам нужно будет создать собственный подкласс org.hibernate.criterion.Order и переопределить метод toSqlString, чтобы сгенерировать требуемое предложение SQL order by.

И затем использовать criteria.addOrder(new TrimOrder("orderField", true)).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...