Hibernate 标准 Alias with projection minus second projection

Hibernate criteria Alias with projection minus second projection

我需要按最大字段 «timeStop» 减去最小字段 «timeStart» 对我的分组对象进行排序。类似的东西:

ProjectionList projList2 = Projections.projectionList();
projList2.add(Projections.alias(Projections.max("timeStop") - Projections.min("timeStop"), "tim"));//Compilation error

Criteria criteria = sess.createCriteria(Call.class);
criteria.addOrder(up ? Order.asc("tim") : Order.desc("tim"));

我怎样才能做到这一点?

使用 sqlProjection

Projections.projectionList()
            .add(Projections.sqlProjection("MAX(timeStop) - MIN(timeStop) AS tim",
                    new String[] { "tim" }, new Type[] {IntegerType.INSTANCE}));

hibernate 类型可以在包中找到 org.hibernate.type