`
lwcheng1985
  • 浏览: 93092 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Hiberante分页,页数统计

阅读更多

今天做Extjs分页时,发现原来框架基于MSSQL的,打印处于举发现为利用select top 进行分页,而在mysql中使用

select * from table limit ?,?.

在网上进行查询这事Hibernate为了实现统一分页接口而在方言中进行封装.Oracle中通过Rownum是实现。

个人认为可以在MSSQl 2005以上版本利用 ROW_NUMBER()可进行“真分页”。

再用uniqueResult做分页统计是,注意结果集只能唯一,否则报错,查看源码后发现

static Object uniqueElement(List list) throws NonUniqueResultException {
        int size = list.size();
        if (size==0) return null;
        Object first = list.get(0);
        for ( int i=1; i<size; i++ ) {
            if ( list.get(i)!=first ) {
                throw new NonUniqueResultException( list.size() );
            }

        }
        return first;
    }

只要结果集不唯一则抛异常,但是结果集的数量以一定唯一,特此mark.

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics