关于HIbernate分组 排序的一点经验(和疑惑)
最近做一个数据的统计,页面上是用的table,每个列头需要排序,这个功能对于单表来说并不复杂,直接把td的id设置成要排序的字段,然后通过字符串凭借,传到后台(接下来会写一篇关于table排序的文章),后台接收后,按照常规来讲,一般拼接hql或是DetachedCriteria就可以了,但现在问题是数据是需要分组后的,而且排序的话,对那些聚合函数算出来的数据排序才是有意义的,问题来了,hibernate分组聚合后的字段,不让自定义别名(我是没试出来,不知哪位高手点拨一二),现在的话我一般用map来接收
如:
LinkedHashMap<String ,String> statusHql= new LinkedHashMap<String, String>(); statusHql.put("fitName", "fitName"); statusHql.put("insideChange","insideChange"); statusHql.put("outsideChange","outsideChange"); statusHql.put("total","total"); statusHql.put("totalRate","totalRate"); statusHql.put("insideChangeRate","insideChangeRate"); statusHql.put("outsideChangeRate","outsideChangeRate"); /* 前面存入的是在页面上定义的td的Id,后面是字段或者表达式如sum(case when) 等 */
注:LinkedHashMap是按插入顺序排序的
这样的话在orderby的时候直接statusHql(key)就ok了,既拼接了查询的内容,又拼接了orderby语句。
这样做没根本解决上面说的那个问题,因为加入在groupby之后再来用聚合函数排序的话,结果会变,所以自定义别名的问题还需另外找方案,这里只是点出了问题所在,总不能用hibernate自己生成的col_0_0_,col_1_0_,col_2_0_这些玩意吧!
相关推荐
Lzs 2020-10-23
聚合室 2020-11-16
零 2020-09-18
Justhavefun 2020-10-22
jacktangj 2020-10-14
ChaITSimpleLove 2020-10-06
Andrea0 2020-09-18
周游列国之仕子 2020-09-15
afanti 2020-09-16
88234852 2020-09-15
YClimb 2020-09-15
风雨断肠人 2020-09-04
卖口粥湛蓝的天空 2020-09-15
stulen 2020-09-15
pythonxuexi 2020-09-06
abfdada 2020-08-26
梦的天空 2020-08-25