IteratorまたはFutureをSqlQueryから作成する場合は、SqlRowsをすべてロードするとメモリー不足が発生するためです。
EbeanServer.find()
を使用できません。したがって、SqlQueryを使用してください。
クエリはfindIterate
とfindFutureList
ですが、SqlQueryにはありません。Ebean:IteratorまたはFutureをSqlQueryから作成する方法
0
A
答えて
1
SqlQueryにはfindIterate()またはfindEach()...がありませんが、同様のメカニズムがあります。
代わりに、setListenerを使用します。
SqlQuery sqlQuery = Ebean.createSqlQuery("select * from o_order");
sqlQuery.setListener(new SqlQueryListener() {
@Override
public void process(SqlRow bean) {
// process 1 row at a time to avoid OOM with large queries
System.out.println("process row "+bean);
}
});
// returns an empty list
sqlQuery.findList();
私は最終的にこのsetListener()アプローチを置き換えることになるのSQLQueryにfindEach()、findEachWhileを()を追加する機能拡張を記録します。
これはhttps://github.com/ebean-orm/avaje-ebeanorm/issues/675
UPDATEとして記録されます。
SqlQuery sqlQuery = Ebean.createSqlQuery("select * from o_order");
sqlQuery.findEach(new QueryEachConsumer<SqlRow>() {
@Override
public void accept(SqlRow row) {
// process row
}
});
とfindEachWhile()と等価でもあります:バージョンで
はあなたのような何かをするだろう7.9.1。
関連する問題
- 1. Future [Iterator]からソースを作成する方法は?
- 2. ドキュメントまたはノードからInputStreamを作成する方法
- 3. SqlQueryを模擬する方法
- 4. 作成またはアップショースクロールする方法
- 5. filer.fields.image.FilerImageFieldをプログラムで作成または作成する方法
- 6. JDBCからOracleのプロシージャを作成または置換する方法は?
- 7. TensorFlowチェックポイントまたはモデルからSavedModelを作成する方法は?
- 8. divのidからjson objまたはarrayを作成する方法は?
- 9. ExecutorServiceを作成せずにスレッドを1つしか実行せずにFutureを受け取る方法は?
- 10. slick 3のFuture Inside DBIOAction構成の使用方法は?
- 11. Enumを含むケースクラスからSpark DatasetまたはDataframeを作成する方法
- 12. MySQL/Hibernate SQLQuery unsigned int(10)をsmallintにキャストする方法は?
- 13. Hibernate SQLQuery、配列と行オブジェクトを取得する方法は?
- 14. latから自動的に円または矩形を作成する方法
- 15. データからr行列またはテーブルを作成する方法
- 16. cx_freeze(またはインストーラ)からpythonでall exeファイルを作成する方法
- 17. Base64文字列からNodeJsのブロブまたはファイルを作成する方法
- 18. std :: experimental :: futureでstd :: asyncを使用する方法はありますか?
- 19. クラスベースのビューから作成されたインスタンスを作成する方法
- 20. 異なる `ExecutorServices`を使用して作成された` Future`のリストを待つ方法
- 21. Javascript:JSONからネストされたDIVを作成する方法
- 22. アップロードされたファブリックパターンから曲線を作成する方法
- 23. ハッキングされたnode_modulesフォルダからpackage.jsonを作成する方法
- 24. XMLファイルを作成または生成する方法
- 25. jQueryを使って作成したポップアップから、ポップアップを作成するページをリダイレクトする方法は?
- 26. クラスであるプロパティからインスタンスを作成する方法は?
- 27. 異なるNSObjectからTableViewを作成する方法は?
- 28. csvからローカルアカウントを作成するが、既に作成されたアカウントを削除する方法は?
- 29. iOSからJPEG画像を一から作成する方法
- 30. データベースからのレコードからナビゲーションリンクを作成する方法
注意:findIterate()の開発者が覚えておく必要がある場所では、リソース(ResultSetなど)が適切に閉じられることを保証するため、query.findEach()およびquery.findEachWhile finallyブロック内のQueryIteratorを閉じます。 –