使用JPA中@Query 注解实现update 操作
Posted 幕三少
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用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。
[email protected] 注解用于提交事务,若没有带上这句,会报事务异常提示。
[email protected](clearAutomatically = true) 自动清除实体里保存的数据。
以上是关于使用JPA中@Query 注解实现update 操作的主要内容,如果未能解决你的问题,请参考以下文章
Spring data JPA Checkmarx 漏洞-@Query 注解的资源访问授权不当