## 为什么我的 Spring Data JPA @Query Update 没有反映在实体中?
Oct 27, 2024 am 10:39 AM未使用 Spring Data JPA @Query 进行更新
在 Spring Data JPA 中,提供的更新查询无法更新实体,导致测试失败。
尽管对查询实施了所需的修改以使用参数化值,但更新的字段不受影响,保留其初始值。在查找操作之前添加刷新操作也无法解决问题。
检查生成的 SQL 语句后,您会发现更新查询已正确执行,但检索修改实体的查询似乎是被忽略。这表明存在潜在的缓存问题。
但是,当向其他查找器添加调用时,更新的值会反映在检索到的对象中。此行为是不一致且意外的。
此外,检索修改实体的 SQL 语句包含 limit 2 子句,尽管假设 Spring Data 在返回单个对象时应始终使用 limit 1 子句。
有趣的是,当在 MySQL 客户端中手动执行生成的 SQL 语句时,逻辑工作完美无缺,这引发了一个问题:为什么这种行为在 Java 级别上没有一致反映。
这个问题的根本原因在于 EntityManager 的默认行为,它不会自动刷新更改。要解决此问题,应在 @Modifying 注释中启用clearAutomatically 选项,确保更新查询后立即刷新更改。
以上是## 为什么我的 Spring Data JPA @Query Update 没有反映在实体中?的详细内容。更多信息请关注PHP中文网其他相关文章!

热门文章

热门文章

热门文章标签

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

2025年的前4个JavaScript框架:React,Angular,Vue,Svelte

如何将Maven或Gradle用于高级Java项目管理,构建自动化和依赖性解决方案?

如何将JPA(Java持久性API)用于具有高级功能(例如缓存和懒惰加载)的对象相关映射?

如何使用咖啡因或Guava Cache等库在Java应用程序中实现多层缓存?
