我只想更新 SQL 中的前 N 行:
UPDATE Table1 SET c1 = 'XXX' WHERE Id IN (SELECT TOP 10 Id FROM Table1 ORDER BY c2)
Hibernate 可以在一次更新中做到这一点吗?
最佳答案
使用 Hibernate,您始终可以发出 native 查询,但当前运行的 Persistence Context won't be aware of the deleted entries .
只要你只删除了相对少量的条目,你就可以简单地选择N个实体,然后使用删除操作,这样你就可以从乐观锁定检查和prevent lost updates中受益。 .
如果您想删除大量条目,那么批量删除查询更合适。您甚至可以运行您提到的 SQL DELETE 查询。正是the reason why JPA and Hibernate allow you to use native SQL queries anyway .
关于java - 如何使用 JPA 和 Hibernate 更新前 N 行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23917771/