使用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 条评论
登录 后参与评论

相关文章

来自专栏王磊的博客

Spring Boot(六)集成 MyBatis 操作 MySQL 8

MyBatis 是一款优秀的持久层框架,它支持定制化 SQL、存储过程以及高级映射。MyBatis 避免了几乎所有的 JDBC代码和手动设置参数以及获取结果集。

1532
来自专栏跟着阿笨一起玩NET

.Net中的5种事务总结

381
来自专栏Java3y

SSM【史上最详细整合】

导入开发包 asm-3.2.0.RELEASE.jar asm-3.3.1.jar c3p0-0.9.jar cglib-2.2.2.jar com.sprin...

3277
来自专栏伦少的博客

hive查询报错:java.io.IOException:org.apache.parquet.io.ParquetDecodingException

转载请务必注明原创地址为:https://dongkelun.com/2018/05/20/hiveQueryException/

32017
来自专栏专注 Java 基础分享

初识Hibernate之环境搭建

     相信所有做后端的程序员同行们,没有不知道Hibernate大名的。这是一个经典的轻量级Java EE持久层的解决方案,它使得我们程序员能以面向对象的思...

1795
来自专栏菩提树下的杨过

Enterprise Library 4.1学习笔记2----数据访问程序块

Data Access Application Block 其实个人感觉相当于另一个版本的dbHelper 废话不多说,先看下如何使用: 1.引用Microso...

17310
来自专栏技术博客

Entity Framework 简单查询

第一步还是先建立一个控制台的应用程序,然后通过Nuget添加Entity Framework。那么同时会给packages.config和App.config添...

782
来自专栏码匠的流水账

docker运行storm及wordcount实例

本文简单介绍下怎么使用docker运行storm以及在springboot中使用storm。

782
来自专栏后端之路

Mybatis Generator 生成JSR 校验注解

背景 目前系统中采用MyBatis Generator来生成DB实体类 参考基于SpringBoot的CodeGenerator 通常生成如下 package...

4775
来自专栏.NET开发者社区

一步一步创建ASP.NET MVC5程序[Repository+Autofac+Automapper+SqlSugar](二)

在本系列第一篇《一步一步创建ASP.NET MVC5程序[Repository+Autofac+Automapper+SqlSugar](一)》中,我为大家介绍...

23010

扫码关注云+社区