1. 程式人生 > >springboot使用jpa的詳細講解(2)

springboot使用jpa的詳細講解(2)

本次主要說一下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開始的