如何在hibernate中使用LIMIT进行更新查询?

时间:2016-05-23 08:55:19

标签: mysql hibernate hql limit

UPDATE  tablename SET  col1 = :col1value WHERE id.col2=:col2 Value 
ORDER BY col3 ASC LIMIT 2;

我需要上述查询的替代方法,因为HQL中不接受LIMIT关键字。 setMaxResults仅适用于选择查询。

想法是,查询更新与col1value对应的所有记录但只有一个。(LIMIT值可以计算并且可用)

1 个答案:

答案 0 :(得分:0)

限制无法在HQL中使用,而query.setMaxResults()无法与UPDATE一起使用。

您也可以按照以下方法进行操作:

编写两个单独的HQL查询,其中第一个查询的结果被输入到第二个查询中,该查询执行下面的更新

1.对仅具有有限结果集的ID的第一次查询(根据您的限制set- setMaxResults())。

3.第二个查询将根据第一个查询WHERE id IN (result of first query)

的结果进行更新