Spring Data JPA之删除和修改

时间:2020-07-22 11:10:55   收藏:0   阅读:237

一、分页查询

因为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);

 

评论(0
© 2014 mamicode.com 版权所有 京ICP备13008772号-2  联系我们:gaon5@hotmail.com
迷上了代码!