如何使用Ebean和mysql获取超过100000行

时间:2012-12-11 16:09:54

标签: mysql playframework-2.0 ebean

在我的公司表中,我有200万行我想要获取并执行一些操作。我编写了一个服务类和一个提取id的方法。但它只是取而代之 默认情况下为100000行。我查看了Ebean文档,但我找不到原因。

简化服务类:

public static List<Long> getAllIds(){   

    String sql = "select distinct c.id from Company c where c.state='PUBLISHED'";
    List<SqlRow> sqlRows =
            Ebean.createSqlQuery(sql).findList();

    Logger.info("Rows: "+sqlRows.size());               

    return new ArrayList<Long>(0);
}

给我:

Rows: 100000

为什么呢?我该如何解决这个问题?提取时我不想要限制。

1 个答案:

答案 0 :(得分:2)

您似乎可以通过调用setMaxRows方法设置返回的最大结果。 您可能需要从另一个获取该表中行数的查询中获取您使用的数字。

未经测试...

public static List<Long> getAllIds(){   

    String sql = "select distinct c.id from Company c where c.state='PUBLISHED'";
    SqlQuery sqlQuery = Ebean.createSqlQuery(sql);    
    sqlQuery.setMaxRows(3000000);
    List<SqlRow> sqlRows = sqlQuery.findList();

    Logger.info("Rows: "+sqlRows.size());               

    return new ArrayList<Long>(0);
}