在我的公司表中,我有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
为什么呢?我该如何解决这个问题?提取时我不想要限制。
答案 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);
}