如何使用setMaxResults更新hibernate查询?

use*_*523 6 java hibernate

我希望它是适当的部分,我有这个代码的问题

Transaction transaction = session.beginTransaction(); 
Query query = session.createQuery("update database set floop= :ctrl1" +" where ctrl= :ctrl2 ").setMaxResults(2); 
query.setMaxResults(2);
query.setParameter("ctrl1",3);
query.setParameter("ctrl2", 5);
Run Code Online (Sandbox Code Playgroud)

我要求通过setMaxResults(2)仅在前两个更新,他做了所有记录的更新,因为我做错了什么?谢谢你的帮助

我想用session.createSQLQuery,但我不知道该怎么做.

Phi*_*ipp 1

setMaxResults限制查询返回的结果数,而不是受影响的行数。

当您只想更新有限的行集时,您应该在 where 条件中指定这些行。对更新行数设置硬性限制没有多大意义,因为无法判断哪些行将被更新。