サーバーから JSON を解析し、ORMLite を使用して、オブジェクトを読み込んでデータベースに永続化します。ファイルは非常に大きくなる可能性があるため、何百ものオブジェクトをメモリに読み込んで一括コミットするのではなく、オブジェクトを一度に 1 つずつコミットすることを考えています (結局のところ、スマートフォンではメモリが不足しています)。ただし、各オブジェクトには複数の値を持つコレクションが含まれており (ForeignCollection
これらの値に使用しようとしているため、各値を個別のオブジェクトとして扱う必要があります)、オブジェクトのコレクション内のすべてのアイテムを一度にコミットする方がよいと考えます。 、たとえば、個々の文字列または整数をコミットするのではなく。
バッチでコミットのグループを作成するには、単純に を呼び出しdao.setAutoCommit(false)
、dao.create()
各項目を呼び出し、dao.commit()
後で呼び出しdao.setAutoCommit(true)
てから、断片的なコミットに戻るために を呼び出すと思います。
3 つの質問があります。
- 途中でコミットするのは正しいですか、それともバッチ コミットを行うべきですか? たとえ最大で 1000 個のオブジェクトが一度にコミットされることを意味するとしても?
- アイテムのコレクションを一度に 1 つずつコミットするのと、バッチでコミットするのとではどちらがよいでしょうか?
databaseConnection
それから値を取得しdao.setAutoCommit()
て必要とする場所はどこdao.commit()
ですか? 見逃したのかもしれませんが、ドキュメントや例では見つかりません。