我正在使用Hibernate,并且(举个例子)有一个包含10000个条目的Employee实体。假设他们中有1000人的工资是4000,我想增加到5000。我很难找到一种有效的方法来做到这一点。在代码中获取所有员工并更新相关条目似乎是无效的、缓慢的,而且在某些情况下似乎还会导致"Batch update returned row count from update“错误。因此,使用原生查询作为建议的似乎更好,但是您需要更新Hibernate缓存才能看到下一个请求的更改:
Employee e =
我指的是Pro JPA2 book for Learning JPA .and它说查询、批量更新和大容量删除绕过持久化上下文并在数据库执行,是否意味着这些操作不是在持久性上下文上执行,而是直接在数据库中调用例如,查找方法在持久性上下文中执行,而选择/更新/删除查询则在数据库上执行。SELECT/UPDATE/DELETE发现可能击中数据库,也可能没有命中数据库,但会访问数据库。
请在这里给我更多的见解
Hibernate: select student0_.id as id1_0_1_, student0_.age as age2_0_1_, student0_.name as name3_0_1_,Hibernate: update Student set age=?, name=? where id=?
此日志显示hibernate仅更新学生实体。与prepod的链接不会更新。Hibernate: select student0_.id as id1_0_1_,