关闭

数据库分页的问题

标签: hibernate排序结果集数据库分页oracle
286人阅读 评论(0) 收藏 举报

以下是原代码,按理说正常查第一页是从0-9 第二页是从10-19,但是发现查出来是第一页0-9 第二页9-18

后来发现是因为t.dbGroupId不是唯一的,导致排序混乱,所以又加了个排序字段 就正常了

	public List<DbList> findByCondition(int pageIndex, int resultNum)
			throws InvalidateArgumentException {
		String sql = "SELECT t FROM DbList t ORDER BY t.dbGroupId";
		Query query = getEm().createQuery(sql);
		if (pageIndex > 0) {
			query.setFirstResult((pageIndex - 1) * resultNum);
		}
		if (resultNum > 0) {
			query.setMaxResults(resultNum);
		}
		List<DbList> list=query.getResultList();
		return list;
	}

正确代码如下,dbname是唯一的

	public List<DbList> findByCondition(int pageIndex, int resultNum)
			throws InvalidateArgumentException {
		String sql = "SELECT t FROM DbList t ORDER BY t.dbGroupId,t.dbName";
		Query query = getEm().createQuery(sql);
		if (pageIndex > 0) {
			query.setFirstResult((pageIndex - 1) * resultNum);
		}
		if (resultNum > 0) {
			query.setMaxResults(resultNum);
		}
		List<DbList> list=query.getResultList();
		return list;
	}



 

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:14883次
    • 积分:466
    • 等级:
    • 排名:千里之外
    • 原创:32篇
    • 转载:9篇
    • 译文:0篇
    • 评论:0条
    文章分类