Spring Data JPA之删除和修改

Posted 又是火星人

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Spring Data JPA之删除和修改相关的知识,希望对你有一定的参考价值。

一、分页查询

因为PagingAndSortingRepository,我们总是可以传入Sort和Pageable对查询结果进行排序和分页(支持命名查询、Example查询和Query查询)。

// 当查询方法中有多个参数的时候,Pageable/Sort建议做为最后一个参数传入

@Query("select u from User u")
Page<User> findALL(Pageable pageable);

Page<User> findByNickName(String nickName, Pageable pageable);

// 可以返回Page<T>对象,也可以返回List<T>对象

此外,JPA不支持Limit,请采用其他方法实现limit需求,https://stackoverflow.com/questions/44565820/what-is-the-limit-clause-alternative-in-jpql 

二、自定义查询

如涉及到删除和修改需要加上@Modifying,添加@Transactional支持事务,查询超时的设置等。

@Transactional(timeout = 10)
@Modifying
@Query("update User set userName = ?1 where id = ?2")
int modifyById(String  userName, Long id);

@Transactional
@Modifying
@Query("delete from User where id = ?1")
void deleteById(Long id);

 

以上是关于Spring Data JPA之删除和修改的主要内容,如果未能解决你的问题,请参考以下文章

spring-data-jpa软删除方案

什么是Spring Data JPA?

spring data jpa使用spring data jpa时,关于service层一个方法中进行删除和插入两种操作在同一个事务内处理

SpringBoot操作之Spring-Data-Jpa

Spring data jpa删除元素时必须先查询出来吗

Spring Data JPA : 批量增删