一尘不染

在休眠顺序条件下将字符串转换为int

hibernate

基本上,我的问题与这一问题相同,但是对于Java的(JBoss)Hibernate:我们如何使用hibernate标准API将列作为int排序?我想创建一个从字符串列转换为int的订单限制。就像是

criteria.addOrder(Order.asc("cast(id as int)"));

唯一的例外是“无法解析属性:[Class]的演员表(id为int)”。我已经尝试过使用int和integer进行cast(as)和convert(,)。


阅读 215

收藏
2020-06-20

共1个答案

一尘不染

尽管主题很旧,可能是问题已经解决,但我还是发布解决方案。也许将来对某人会有帮助。

criteria.addOrder(new org.hibernate.criterion.Order("anystring", true) {
            @Override
            public String toSqlString(Criteria criteria, CriteriaQuery criteriaQuery) throws HibernateException {
                return "cast(id as int)";
            }
        });
2020-06-20