java - 休眠标准别名与投影减去第二个投影
问题描述
我需要按最大字段«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 中找到
推荐阅读
- swift - 如何打印具有多个数据的标题和uitableview的uiwebview
- r - 检查组中的任何日期是否在 r 中该组的特定时间间隔内
- javascript - 如何使用具有多个子原型对象的原型嵌套对象和共享变量?
- video-streaming - gstreamer 到 Kinesis Video Stream 速率限制
- c# - 如何使用 xamarin.forms 在 android 中设置外部存储写入运行时权限
- vue.js - 如何在方法中模拟 axios 调用?
- python - Python:在行的列中以 numpy 和自定义格式保存 csv
- generics - Kotlin:通过类进行铸造
使用时检查,但它显示“类型不匹配”。 - angular - ngx-bootstrap 下拉菜单在移动视图中嵌套子菜单
- javascript - 使用 animate.css 在第一个动画后 6 秒重复相同的动画 [已编辑]