You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Spring Data+Hibernate中全局禁用脏检查,仅显式触发增改?

在Spring Data + Hibernate应用中全局禁用脏检查的需求与问题

我希望在基于Spring Data、Hibernate的应用中全局禁用脏检查,目标是仅当显式调用myRepo.save()或myRepo.myUpdateQuery()时,JPA才生成更新/插入查询。

我的所有实体都拥有final字段和不可修改集合,因此确实不需要脏检查,我始终手动处理更新。但目前每次懒加载字段时,JPA都会生成冗余更新查询,导致严重的性能问题。

以下是我尝试过但无效的解决方案:

  • 使用FlushMode=MANUAL:这过于繁琐,因为必须确保手动调用flush(),而我无法承担大量重构工作。
  • 使用只读事务:这会阻止我显式的保存/修改查询调用,我希望这些操作能正常运行。
  • 分离实体:这会带来额外副作用,比如无法进行后续懒加载,这不可接受,而且需要大量重构;此外由于使用Spring Data仓库,我大多无法访问EntityManager。
  • 使用无状态会话:这不可行,因为懒加载等功能也会被禁用。

内容的提问来源于stack exchange,提问作者Alkis Mavridis

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.10 16:35:23