基本上,我的问题与这一问题相同,但是对于Java的(JBoss)Hibernate:我们如何使用hibernate标准API将列作为int排序?我想创建一个从字符串列转换为int的订单限制。就像是
criteria.addOrder(Order.asc("cast(id as int)"));
唯一的例外是“无法解析属性:[Class]的演员表(id为int)”。我已经尝试过使用int和integer进行cast(as)和convert(,)。
尽管主题很旧,可能是问题已经解决,但我还是发布解决方案。也许将来对某人会有帮助。
criteria.addOrder(new org.hibernate.criterion.Order("anystring", true) { @Override public String toSqlString(Criteria criteria, CriteriaQuery criteriaQuery) throws HibernateException { return "cast(id as int)"; } });