为什么我的更新语句没有在 Spring Data JPA 中刷新?
更新语句未刷新?
Spring Data JPA 的 @Query 注解允许执行自定义查询。在提供的代码片段中,@Modifying 查询用于更新管理实体。但是,通过此查询所做的更改不会持久化到数据库中。
刷新的作用
默认情况下,EntityManager 不会自动刷新更改。这意味着通过 @Modifying 查询所做的更改只会反映在 EntityManager 的本地缓存中,但在显式刷新 EntityManager 之前它们不会持久化到数据库。
解决方案:强制刷新
为了确保通过 @Modifying 查询所做的更改持久保存到数据库中,请将clearAutomatically = true 选项添加到 @Modifying 注释中。这将强制 EntityManager 在每次写入操作后自动刷新更改,确保数据库立即更新。
修改的查询:
<code class="java">@Modifying(clearAutomatically = true) @Transactional @Query("UPDATE Admin SET firstname = :firstname, lastname = :lastname, login = :login, superAdmin = :superAdmin, preferenceAdmin = :preferenceAdmin, address = :address, zipCode = :zipCode, city = :city, country = :country, email = :email, profile = :profile, postLoginUrl = :postLoginUrl WHERE id = :id") public void update(@Param("firstname") String firstname, @Param("lastname") String lastname, @Param("login") String login, @Param("superAdmin") boolean superAdmin, @Param("preferenceAdmin") boolean preferenceAdmin, @Param("address") String address, @Param("zipCode") String zipCode, @Param("city") String city, @Param("country") String country, @Param("email") String email, @Param("profile") String profile, @Param("postLoginUrl") String postLoginUrl, @Param("id") Long id);</code>
其他注意事项:
- 使用事务管理:事务确保对数据库所做的更改是原子的且一致的。使用事务包围对 @Modifying 查询的调用,以确保更新成功保存。
- 使用 Flush 方法: AndFlush 方法也可用于显式刷新对数据库的更改。在执行任何修改数据库的查询后可以使用此方法。
以上是为什么我的更新语句没有在 Spring Data JPA 中刷新?的详细内容。更多信息请关注PHP中文网其他相关文章!

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

Video Face Swap
使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

热工具

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

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

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

Dreamweaver CS6
视觉化网页开发工具

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

公司安全软件导致部分应用无法正常运行的排查与解决方法许多公司为了保障内部网络安全,会部署安全软件。...

将姓名转换为数字以实现排序的解决方案在许多应用场景中,用户可能需要在群组中进行排序,尤其是在一个用...

系统对接中的字段映射处理在进行系统对接时,常常会遇到一个棘手的问题:如何将A系统的接口字段有效地映�...

在使用IntelliJIDEAUltimate版本启动Spring...

在使用MyBatis-Plus或其他ORM框架进行数据库操作时,经常需要根据实体类的属性名构造查询条件。如果每次都手动...

Java对象与数组的转换:深入探讨强制类型转换的风险与正确方法很多Java初学者会遇到将一个对象转换成数组的�...

电商平台SKU和SPU表设计详解本文将探讨电商平台中SKU和SPU的数据库设计问题,特别是如何处理用户自定义销售属...

Redis缓存方案如何实现产品排行榜列表的需求?在开发过程中,我们常常需要处理排行榜的需求,例如展示一个�...
