2016-08-13 2 views
0

私はPlay 2.2.6を使用しています。私はRawSqlで「getTotalPageCount」を取得したいが、 私はいつも1ページレコードを得る。プレーフレームRawSqlどうすればいいですか?TotalPage

String sql = "select " 
      + "a.id as id ," 
      + "b.name as computerType ," 
      + "a.buy_time as buyTime ," 
      + "a.user_name as userName, " 
      + "a.if_use as ifUse from computer a left join computer_type b on a.computer_type = b.code where 1=1 "; 

    if(StringUtil.StringNoEmpty(vo.userName)){ 
     sql += " and a.user_name like '%"+vo.userName+"%'"; 
    } 

    if(StringUtil.StringNoEmpty(vo.computerType)){ 
     sql += " and a.computer_type = '"+vo.computerType+"'"; 
    } 
    if(null!=vo.startTime){   
     String startTime = DateUtil.formate.format(vo.startTime); 
     sql += " and a.buy_time >= '"+startTime+"'"; 
    } 

    if(null!=vo.endTime){ 
     String endTime = DateUtil.formate.format(vo.endTime); 
     sql += " and a.buy_time <= '"+endTime+"'"; 
    } 

    if(StringUtil.StringNoEmpty(vo.ifUse)){ 
     if("on".equals(vo.ifUse)){ 
      sql += " and a.if_use ='1' "; 
     }else if("off".equals(vo.ifUse)){ 
      sql += " and a.if_use = '0'"; 
     } 
    } 

    RawSql rawSql = RawSqlBuilder.parse(sql).create(); 

    Query<ResultComputer> query = Ebean.find(ResultComputer.class).order("id"); 
    query.setRawSql(rawSql); 

    Page<ResultComputer> page = query.findPagingList(10).setFetchAhead(false).getPage(0); 
    Logger.debug(page.getTotalPageCount()+""); // result 1. 

が、私のデータベースは千枚のレコードを持っている: は、ここでは、コードです。私は "page.getTotalPageCount()"は100ページレコードでなければならないと思う。私のミスはどこですか?

答えて

0
public int getTotalPageCount(); 

戻りもしgetPage(0)を与えているpages.Sinceの総数は、それは[(0から始まる)指定されたページ位置ページ-return getPage(0)] 1.返します。合計ページ数が必要な場合:pagingListgetTotalPageCount();で取得してください。

関連する問題