您的位置:首页 > 其它

Hibernate 先排序再分页问题

2013-11-19 10:14 295 查看
DB2为例hibernate分页排序sql

ORDER BY t.STATIS_DATE desc, T.AREA_CODE,T.SUBS_AREA_CODE,T.BLOCK_CODE,T.COMTY_DESC  排序失败

ORDER BY t.STATIS_DATE desc, T.AREA_CODE,T.SUBS_AREA_CODE,T.BLOCK_CODE,T.COMTY_DESC,t.T_ID 排序成功

 

示例Sql:

select * from ( select rownumber() over(ORDER BY t.STATIS_DATE desc, T.AREA_CODE,T.SUBS_AREA_CODE,T.BLOCK_CODE,T.COMTY_DESC,t.T_ID) as rownumber_, t.STATIS_DATE,t.AREA_DESC,t.SUBS_AREA_DESC,t.BLOCK_DESC,t.COMTY_DESC,t.USER_NAME,t.USER_COUNT,t.CHANG_USER_COUNT,t.CHANG_USER_COUNT/t.USER_COUNT,t.AREA_CODE,t.SUBS_AREA_CODE,t.BLOCK_CODE,t.COMTY_CODE,t.USER_FLAG
from GIS.TB_ALL_ANALYSE_M_LEVEL t  WHERE  1=1  AND t.STATIS_DATE  BETWEEN 201301 AND 201310  AND t.LEVEL = '1' ORDER BY t.STATIS_DATE desc, T.AREA_CODE,T.SUBS_AREA_CODE,T.BLOCK_CODE,T.COMTY_DESC,t.T_ID ) as temp_ where rownumber_ <= ?

 

问题定位:

主要原因是t.STATIS_DATE desc, T.AREA_CODE,T.SUBS_AREA_CODE,T.BLOCK_CODE,T.COMTY_DESC排序字段在结果集中完全一样的情况下,排序失败。

hibernate的排序函数也不能正确将排序条件加到先排序sql部分

over(ORDER BY t.STATIS_DATE desc, T.AREA_CODE,T.SUBS_AREA_CODE,T.BLOCK_CODE,T.COMTY_DESC,t.T_ID)

所以当加上t.T_ID主键唯一字段排序条件则成功。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: