java - 如何使用 JPA 和 Hibernate 更新前 N 行

标签 java sql database hibernate jpa

我只想更新 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/

相关文章:

java - Hibernate工具,auto cascade all

mysql - LIMIT 1 怎么可能使查询变慢

java - Connection 对象可以在构造函数之外与 JDBC RowSet 实例一起使用吗?

MySQL设计一对多?

java - 需要修改Cloudsim中现有的TASK SCHEDULING算法。我应该使用哪些文件?

java - 用天数数组填充 RecyclerView

java - Spring-data-elasticsearch “nested query throws [nested] failed to find nested object under path”异常

sql - 如何在sql中一次更改多个表的结构

sql - 如何以恒定速度从 PostgreSQL 中检索数据?

mysql - 在两个表上进行 UNION ALL 后,如何删除/更新在其他表中具有类似 ID 的特定行?