Postgresql 使用setMaxRows创建限制结果集

Postgresql 使用setMaxRows创建限制结果集,postgresql,playframework-2.0,ebean,Postgresql,Playframework 2.0,Ebean,我正在使用ebean创建一个带有搜索表单参数的查询!框架2.0.4。根据给定的参数,结果最多可以有一百万行。因此,我使用setMaxRows(100)限制结果。最后我有一个100个条目的列表,但是请求数据的实际语句缺少LIMIT关键字,所有数据都存储在内存中 Query<Process> query = Process.find.fetch("documents").fetch("documents.workflows").fetch("documents.workflows.sta

我正在使用ebean创建一个带有搜索表单参数的查询!框架2.0.4。根据给定的参数,结果最多可以有一百万行。因此,我使用setMaxRows(100)限制结果。最后我有一个100个条目的列表,但是请求数据的实际语句缺少LIMIT关键字,所有数据都存储在内存中

Query<Process> query = Process.find.fetch("documents").fetch("documents.workflows").fetch("documents.workflows.state");
ExpressionList<Process> expression = query.where().between("documents.workflows.date", new java.sql.Date(edit_date.getTime()), new java.sql.Date(edit_to.getTime()));
procs = expression.setMaxRows(100).orderBy().desc("id").findList();
Query Query=Process.find.fetch(“documents”).fetch(“documents.workflows”).fetch(“documents.workflows.state”);
ExpressionList expression=query.where().between(“documents.workflows.date”、new java.sql.date(edit_date.getTime())、new java.sql.date(edit_to.getTime());
procs=expression.setMaxRows(100).orderBy().desc(“id”).findList();
Java
Postgresql 9.1
ebean 2.7.3
玩框架2.0.4


有人能告诉我为什么ebean在我的案例中没有使用LIMIT关键字吗?

我不知道为什么它在声明中没有使用LIMIT,我昨天发现了相同的情况


我的解决方案(这对我来说是可以接受的)是使用and/or创建自定义查询(两者都允许创建自定义语句)

谢谢,但我使用ebean基于搜索表单中给定的参数构建更复杂的嵌套搜索语句。没有埃宾,一切都会变得一团糟。有没有一种方法可以在不执行之前获取生成的语句?所以我可以手动添加限制,然后使用rawsql?当然我不想强制执行,但我发现了完全相反的结论:更高级的查询需要手动创建以获得最佳使用(不总是,但有时…)。我定期检查Ebean编写的语句,并经常用自定义SQL替换它们。Nota bene如果您要使用语句日志记录,您可以查看(并复制)Ebean的语句,并编写一个方法,该方法将对您的更改执行相同的代码。最有可能的是,你也会发现一些需要优化和改进的领域。这是一个3年前的问题,针对的是一个非常旧版本的Ebean,但是。。。我只是想说,在这种情况下,我鼓励你发帖子到Ebean谷歌集团。当然这里会有一个限制条款,但是通过获取@OneToMany的Ebean也会自动将其分解为多个sql语句等。Stackoverflow并不总是获得所需帮助的最佳论坛。