1. 程式人生 > >使用Hibernate的setFirstResult,setMaxResults實現資料庫分頁

使用Hibernate的setFirstResult,setMaxResults實現資料庫分頁



自己測試: 
HQL: 
      String hql =" from NumberBiz biz where biz.numberDepot.status=?" ; 
     Object[] values = {Constants.NUM_STATUS_NOT_AVAILABLE}; 
     NumberBiz numberBiz = (NumberBiz)this.createQuery(session,hql,values).setFirstResult(0).setMaxResults(1).uniqueResult(); 

console view show_sql: 

    select 

        * 
    from 
        ( select 
            numberbiz0_.id as id83_, 
            numberbiz0_.create_date as create2_83_, 
            numberbiz0_.create_by as create3_83_, 
            numberbiz0_.last_update_date as last4_83_, 
            numberbiz0_.last_update_by as last5_83_, 
            numberbiz0_.deleted as deleted83_, 

            numberbiz0_.addon_services as addon7_83_, 
            numberbiz0_.first_three_digits as first8_83_, 
            numberbiz0_.is_recommended as is9_83_, 
            numberbiz0_.last_four_digits as last10_83_, 
            numberbiz0_.middle_four_digits as middle11_83_, 
            numberbiz0_.minimum_expenses_per_month as minimum12_83_, 

            numberbiz0_.num_type as num13_83_, 
            numberbiz0_.num as num83_, 
            numberbiz0_.number_biz_group_id as number19_83_, 
            numberbiz0_.number_brands as number15_83_, 
            numberbiz0_.number_depot_id as number20_83_, 
            numberbiz0_.number_packages as number16_83_, 
            numberbiz0_.pre_pay as pre17_83_, 
            numberbiz0_.price as price83_ 
        from 
            number_biz numberbiz0_, 
            number_depot numberdepo1_ 
        where 
            numberbiz0_.number_depot_id=numberdepo1_.id 
            and numberdepo1_.status=? 
            ) 
    where 
        rownum <= ?