7

DB2 で 100,000 行を削除する必要があります。delete from のような Hibernate (HQL) を使用していquery.executeQuery()ます。

HQLで削除する行数を制限することは可能ですか? 例えば:

query.setMaxRowTodelete(100); //  this is just an example.
query.executeQuery();
4

2 に答える 2

9

残念ながら、HQL で制限することはできず、 s またはsquery.setMaxResults(number)では機能しません。オプションは次のとおりです。UPDATEDELETE

  • 各オブジェクトのオーバー/ロードを繰り返して削除します。うん!
  • 最初のクエリの結果が別のクエリに供給される (実際の削除を行う) 2 つの別個の HQL クエリを記述します。あなたの状況では可能かもしれませんし、不可能かもしれません。
  • 生の SQL/JDBC を使用します。
  • 2 つのクエリを作成します。最初のクエリは ID のみ (実際のオブジェクトをロードせず) で、限られた結果セット (この場合は 100) を持ちます。2 番目のクエリは削除しますWHERE someid IN (id1, id2, ..., id100)
于 2012-11-20T22:40:34.540 に答える