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.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值