springboot使用jpa的詳細講解(2)
阿新 • • 發佈:2019-02-08
本次主要說一下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開始的