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

相关文章

来自专栏哲学驱动设计

性能优化总结(五):CSLA服务端如何使用多线程的解决方案

    前篇说到了使用异步线程来实现数据的预加载,以提高系统性能。     这样的操作一般是在客户端执行,用以减少用户的等待时间。客户端发送多次异步请求,到达服...

2498
来自专栏转载gongluck的CSDN博客

IOCP反射服务器

这两天学习了一下IOCP网络模型。 主要参考了这两片文章:http://blog.csdn.net/neicole/article/details/754949...

3178
来自专栏编程坑太多

springboot(14)redis实现session共享

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

java:如何用代码控制H2 Database启动

1、纯手动start/stop 1 package com.cnblogs.yjmyzz.h2; 2 3 import java.sql.Connect...

18610
来自专栏Android Note

Android — Room 数据库跳跃式升级(Migration)

903
来自专栏程序之美

设计模式之代理

643
来自专栏JetpropelledSnake

RESTful源码学习笔记之RPC和Restful深入理解

RPC 即远程过程调用(Remote Procedure Call Protocol,简称RPC),像调用本地服务(方法)一样调用服务器的服务(方法)。通常的实...

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

Microsoft PetShop 集锦

项目概述与架构分析微软刚推出了基于ASP.NET 2.0下的Pet Shop 4, 该版本有了一个全新的用户界面。是研究ASP.NET 2.0的好范例啊 Pe...

421
来自专栏龙首琴剑庐

mybaits3整合spring总结

1、maven定义properties: <org.springframework.version>4.3.1.RELEASE</org.springframe...

3107
来自专栏vue

vue-resource实现数据的绑定、添加、删除

641

扫描关注云+社区