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 order restriction with a cast to int from a string column. Something like
criteria.addOrder(Order.asc("cast(id as int)"));
The exception is "Could not resolve property: cast(id as int) of [Class]". I've tried both cast( as ) and convert(,) with int and integer.
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)";
}
});
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With