2

プレイ中の ebean を使用して、検索フォームからパラメーターを使用してクエリを作成しています! フレームワーク 2.0.4。指定されたパラメーターに応じて、結果は最大 100 万行になる可能性があります。そのため、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();

Java
Postgresql 9.1
ebean 2.7.3
プレイ! フレームワーク 2.0.4

私の場合、ebean が LIMIT キーワードを使用していない理由を誰か教えてもらえますか?

4

1 に答える 1

1

ステートメントでLIMITを使用しない理由はわかりませんが、昨日同じ状況が見つかりました。

私の解決策(私にとっては許容できる)は、RawSqlおよび/またはSqlQueryを使用してカスタムクエリを作成することです(どちらもカス​​タムステートメントを作成できます)

于 2012-10-25T08:40:00.997 に答える