springboot使用jpa的详细讲解(2)

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u012031408/article/details/81204747

本次主要说一下jpa提供的查询方式:

1、JPA原生的简单语法

jpa根据fang方法名自动生成sql7语句。主要语法为:

  • 查询:以findBy开头,后面跟上属性名。例:findByName 或者findByNameAndId
  • 删除:以deleteBy开头,后面跟上属性名
  • 新增修改:统一使用save
  • 统计:countBy开头,后面跟上属性

其他常用的关键字如下图

2、原生分页查询

jpa提供了findAll(Pageable pageable)

Pageable pageable = PageRequest.of(1,2);
Page<User> users = userRepository.findAll(pageable);
List<User> userList = users.getContent();

当然如果我们需要进行有条件的分页查询,语法参照原生的语法,参数多加一个Pageable 就行

Page<User> findByName(String name, Pageable pageable);

或者加上关键字:
Page<User> findByNameNot(String name, Pageable pageable);

对参数Pageable对象,我们可以指定页数,每页条数,以及排序方式等

Pageable是一个接口,它的实现duix对象是PageRequest,如下图:

在 PageRequest类中提供了三个构造方法

可以直接new一个PageRequest对象,也可以调用of()静态方法, 方法中可以传page(当前页数),size(每页条数)以及Sort排序信息或者可以不用Sort,直接定义排序顺序Direction.ASC或Direction.DESC,然后后面跟上要排序的字段,可以是一个或多个

如果使用Sort,可以new一个Sort对象,如下:

Sort sort = new Sort(Sort.Direction.DESC,"age");

注: 这里page是从0开始的

猜你喜欢

转载自blog.csdn.net/u012031408/article/details/81204747