Reputation: 48
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 ?
Upvotes: 1
Views: 1995
Reputation: 692073
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))
.
Upvotes: 1