約300〜400レコードを含むDBがあります。次のような30個のレコードをフェッチするための簡単なクエリを作成できます。
SELECT * FROM table
WHERE isValidated = false
LIMIT 30
DBテーブルの内容についてもう少し。isValidatedという名前の列があり、(正しく推測したように)trueまたはfalseの2つの値のいずれかを取ることができます。クエリの後、いくつかのレコードを検証する必要があります(isValidated = true)。30レコードの各束から約5〜6レコードです。これに対応して、各クエリの後に、前のクエリからレコード(isValidated = false)をフェッチします。実際、私はそのようなアプローチでテーブルの最後に到達することは決してありません。
検証プロセスはJava+Hibernateで行われます。私はHibernateを初めて使用するため、この単純なクエリを作成するためにCriterionを使用します。
そのようなタスクのベストプラクティスはありますか?フラグフィールド(すでにフェッチされたレコードをマークする)を追加したバリアントは不適切です(このDBの過剰設計)。おそらく、すでに処理されたレコードが保存される仮想テーブルなどを作成する機会があります。ところで、すべてのレコードが処理された後、それらの処理を再開することが計画されています(一部のレコードを検証する必要がある可能性があります)。
よろしくお願いします。