如何仅删除前100行?

bam*_*oni 5 hibernate hql limit

我在DB2中有100,000行要删除.我使用Hibernate(HQL)之类的东西就像删除query.executeQuery().

在HQL中是否可以限制要删除的行数?例如:

query.setMaxRowTodelete(100); //  this is just an example.
query.executeQuery();
Run Code Online (Sandbox Code Playgroud)

min*_*das 8

可悲的是,您不能使用HQL进行限制,query.setMaxResults(number)也不能使用UPDATEs或DELETEs.你的选择是:

  • 迭代/加载每个对象并删除它.呸!
  • 编写两个单独的HQL查询,其中第一个查询的结果被送入另一个查询(执行实际删除).在您的情况下可能会或可能不会.
  • 使用原始SQL/JDBC.
  • 进行两个查询:首先只查询ID(不加载实际对象),结果集有限(在你的情况下为100).第二个查询将删除WHERE someid IN (id1, id2, ..., id100)