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

如何使用Ebean和mysql获取超过100000行,mysql,playframework-2.0,ebean,Mysql,Playframework 2.0,Ebean,在我的Company表中,我有200万行要获取并对其执行一些操作。我已经编写了一个服务类和一个提取ID的方法。但这只会让人感动 默认情况下为100000行。我已经看过了Ebean的文档,但我不知道为什么 简化服务类: public static List<Long> getAllIds(){ String sql = "select distinct c.id from Company c where c.state='PUBLISHED'"; List<

在我的Company表中,我有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

为什么??我如何解决这个问题?我不希望在获取时设置限制。

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

未经测试的

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);
}
publicstaticlist getAllIds(){
String sql=“从c.state='PUBLISHED'所在的公司c中选择不同的c.id”;
SqlQuery SqlQuery=Ebean.createSqlQuery(sql);
setMaxRows(3000000);
List sqlRows=sqlQuery.findList();
Logger.info(“Rows:+sqlRows.size());
返回新的ArrayList(0);
}

这并不是一个真正的答案,但通常情况下,对这么多行的操作最好在数据库中执行。。。这些操作是什么?你是对的。但在这种情况下,我需要获取ID,获取更多数据库中不可用的信息。然后将其拆分并创建som可调用任务shmm在源代码私有静态final int GLOBAL_ROW_LIMIT=1000000中找到了它;所以我想你的方式是正确的。非常感谢。有1000000的全局行限制,所以请停止意外的恶意查询。是的,设置一个显式的最大行数是解决这个问题的正确方法(我是ebeanorm的作者)。