【发布时间】:2012-11-07 21:13:16
【问题描述】:
我在 DB2 中有 100,000 行要删除。我使用 Hibernate (HQL) 之类的 delete from than query.executeQuery()。
是否可以在 HQL 中限制要删除的行数?例如:
query.setMaxRowTodelete(100); // this is just an example.
query.executeQuery();
【问题讨论】:
我在 DB2 中有 100,000 行要删除。我使用 Hibernate (HQL) 之类的 delete from than query.executeQuery()。
是否可以在 HQL 中限制要删除的行数?例如:
query.setMaxRowTodelete(100); // this is just an example.
query.executeQuery();
【问题讨论】:
遗憾的是,您不能使用 HQL 进行限制,query.setMaxResults(number) 将无法使用 UPDATEs 或 DELETEs。您的选择是:
WHERE someid IN (id1, id2, ..., id100)
【讨论】:
不,很遗憾是不可能的。为此,根据您的用例,我会研究它是否值得以下任何一点:
使用setMaxResults 1 到select,然后迭代删除delete 的元素(性能不佳)
2 使用session.createSQLQuery,创建一个SQL就可以使用limit
【讨论】: