专栏首页hbbliyong使用JPA中@Query 注解实现update 操作

使用JPA中@Query 注解实现update 操作

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

1、调用保存实体的方法

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

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

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

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

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

使用JPA中@Query 注解实现update 操作,代码如下:

@Transactional
@Modifying(clearAutomatically = true)
 @Query(value = "update StockOut sc set sc.receivedPersonId=?1,sc.receivedPerson=?2,sc.receivedDate=?3 where stockOutCode=?4")
 int receipt(Long uid,  String uname, Date createDate, String soCode);

备注: 1.更新StockOut表下一些字段, 这里使用了不是原生的sql语句,所以不要加nativeQuery = true。

2.@Transactional 注解用于提交事务,若没有带上这句,会报事务异常提示。 3.@Modifying(clearAutomatically = true) 自动清除实体里保存的数据。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Docker -v 对挂载的目录没有权限 Permission denied

    可以通过docker inspect命令,查看容器“Mounts”那一部分,我们可以得到这个问题的答案。

    hbbliyong
  • C#新功能--命名参数

      命名参数会潜在的改变编写代码的方式.这个新功能能使代码更容易阅读和理解. 例如,看一下System.IO名称空间中的File.Copy()方法,它一般构建为...

    hbbliyong
  • nginx支持跨域访问

    1,进入nginx的html目录  vim ./crossdomain.xml  具体路径: /usr/local/nginx/html/crossdomain...

    hbbliyong
  • Unity2D手册翻译(二)

    Sprite Creator 通过这个工具,你可以建立一个临时的 Sprite(2D)图形占位器。 你可以在你的项目中的开发期使用这些占位器,然后用你想要用的图...

    韩伟
  • Mysql优化中Profiling的使用

    要想优化一条Query,就须要清楚这条Query的性能瓶颈到底在哪里,是消耗的CPU计算太多,还是需要的IO操作太多?要想能够清楚地了解这些信息,可以通过Que...

    dys
  • Elasticsearch从入门到放弃:再聊搜索

    在前文中我们曾经聊过搜索文档的方法,Elasticsearch 一般适用于读多写少的场景,因此我们需要更多的关注读操作。

    Jackeyzhe
  • 我所理解的Mysql执行计划原理

    Mysql性能优化,从一名高级码农的角度,我们不能像java语言一样,通过debug来调试我们的业务SQL,那么我们怎么去验证优化之后的SQL语义呢,那...

    用户6969969
  • 参考文献必备神器:这个插件能快速知道收藏的论文是否靠谱

    专攻AI分析论文内容的Scite最近刚刚开源了scite-zotero-plugin工具。

    深度学习技术前沿公众号博主
  • 参考文献必备神器:这个插件能快速知道收藏的论文是否靠谱

    专攻AI分析论文内容的Scite最近刚刚开源了scite-zotero-plugin工具。

    量子位
  • MongoDB Query 的几个方法

    Query.All("name", "a", "b");//通过多个元素来匹配数组 Query.And(Query.EQ("name", "a"), Query...

    Java中文社群_老王

扫码关注云+社区

领取腾讯云代金券