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主键唯一字段排序条件则成功。
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主键唯一字段排序条件则成功。
相关文章推荐
- hibernate DetachedCriteria 分页不支持排序问题
- hibernate分页排序问题
- 解决使用HIBERNATE对ORACLE数据库中数据进行排序分页错乱的问题
- hibernate 分页查询求总记录数遇到的问题
- 分页查询的排序问题
- 解决hibernate分页后,页面访问不了的问题,一直等也出不来
- SQL之美 - 分页查询的排序问题
- 解决hibernate对Sql Server分页慢的问题
- 【转】解决Oracle分页查询中排序与效率问题
- 学习struts2建bbs总结六:hibernate分页查询的问题--分页后程序定时无响应
- [原创]java WEB学习笔记92:Hibernate学习之路-- -QBC 检索和本地 SQL 检索:基本的QBC 查询,带 AND 和 OR 的QBC,统计查询,排序,分页
- 浅谈ORDER排序对HIBERNATE分页查询的影响
- hibernate先排序后分页
- 修改EFOracleProvider——解决分页排序问题
- SpringMVC集成Hibernate分页查询到对象数组问题
- Hibernate、oracle分页、order by问题
- Oracle分页查询中排序与效率问题
- Caused by: java.sql.SQLSyntaxErrorException: ORA-00942: 表或视图不存在,分页等关于hibernate测试的几个问题
- 解决GridView导出Excel后,分页,排序,中文乱码的问题
- Hibernate的查询 标准(Criteria)查询 分页、单个记录、排序