千家信息网

如何解决Spring data jpa @Query update的坑

发表于:2026-11-03 作者:千家信息网编辑
千家信息网最后更新 2026年11月03日,小编给大家分享一下如何解决Spring data jpa @Query update的坑,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去
千家信息网最后更新 2026年11月03日如何解决Spring data jpa @Query update的坑

小编给大家分享一下如何解决Spring data jpa @Query update的坑,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!

    Spring data jpa @Query update的坑

    jpa默认只有save(Entity)方法,如果数据库中没有记录就新增,如果数据库中有记录就更新记录。

    如果要手动添加update(Entity)方法,

    可以参考这个例子

     @Modifying @Query(value = "UPDATE SmallFileEntity s SET s.length = '#{entity.getLength()}' , s.modificationTime = '#{entity.getModificationTime()}', s.accessTime = '#{entity.getAccessTime()}' WHERE s.autoId = '#{entity.getAutoId()}' ", nativeQuery = false) void updateLengthAndModificationTimeAndAccessTime(SmallFileEntity entity);

    上例的重点是将EL表达式用单括号括起来。

    EL表达式中是可以书写java语句的,在@Query注解中,EL表达式可以取到参数列表中的对象。

    实在不行的话,就nativeQuery = true。

    Spring data jpa的update操作

    使用jpa进行update操作主要有两种方式:

    1、调用保存实体的方法

    1)保存一个实体:repository.save(T entity)

    2)保存多个实体:repository.save(Iterable entities)

    3)保存并立即刷新一个实体:repository.saveAndFlush(T entity)

    注:若是更改,entity中必须设置了主键字段,不然不能对应上数据库中的记录,变成新增(数据库自动生成主键)或报错(数据库不自动生成主键)了

    2、@Query注解,自己写JPQL语句

    例:

    @Modifying@Query("update ShopCoupon sc set sc.deleted = true where sc.id in :ids")public void deleteByIds(@Param(value = "ids") List ids);

    注:

    1)update或delete时必须使用@Modifying对方法进行注解,才能使得ORM知道现在要执行的是写操作

    2)有时候不加@Param注解参数,可能会报如下异常:

    org.springframework.dao.InvalidDataAccessApiUsageException: Name must not be null or empty!; nested exception i is Java.lang.IllegalArgumentException: Name must not be null or empty!

    以上是"如何解决Spring data jpa @Query update的坑"这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注行业资讯频道!

    数据 数据库 实体 方法 注解 篇文章 表达式 内容 参数 自动生成 语句 参考 生成 不行 不怎么 例子 只有 多个 大部分 字段 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 互联网科技图片 哈尔滨大商圈互联网科技有限公司 广州紫鲸互联网科技有限公司 科技赋能下的互联网金融 上海挚品互联网科技 嘟嘟瓜互联网科技 广西互联网科技公司 互联网 视角下的科技创新 北京三清互联网科技 常德市电业局互联网科技部 昭通互联网科技选哪家 国大互联网教育科技有限公司工作 朱啸虎曾投资哪些互联网科技企业 工业互联网展湾科技股份有限公司 滨湖区互联网智能科技产品有哪些 互联网安防科技感 中国互联网公司的科技投入 绵阳真晨互联网科技有限公司 青岛易易互联网科技 小牛互联网科技有限公司地址 广州紫鲸互联网科技有限公司 科技平台互联网 A股互联网金融科技公司 鸠鸠互联网科技 互联网络科技有限公司 丰台科技园 互联网 互联网科技上市公司 互联网科技公司营业执照怎么办理 富国互联网科技002692 每日互联网科技新闻
    0