Basically, my question is the same as this one, but for Java\'s (JBoss) Hibernate: How can we order a column as int using hibernate criteria API?
I want to create an or
If the column contains integer values, the best solution is to map it as an integer rather than a String.
If, for obscure reasons, this is not possible, you could add a integer field annotated with @Formula("cast(id) as number") in your entity and order on this field.
Despite the topic is old and may be the problem were solved, I'll post solution. Maybe it will be helpful in future for someone.
criteria.addOrder(new org.hibernate.criterion.Order("anystring", true) {
@Override
public String toSqlString(Criteria criteria, CriteriaQuery criteriaQuery) throws HibernateException {
return "cast(id as int)";
}
});