在網站上看到很多人提到分頁查詢使用Pageable,但是大部分用的都是JPA。我這里使用的是mybatis。控制器代碼:
@GetMapping
public Object GetVacations(
@PageableDefault(page = 2, size = 4, sort = {"id,desc"}) Pageable pageable) {
List<Vacation> vacations = new ArrayList<>();
vacations=vacationMapper.getVacations(pageable);
return vacations;
}
Mapper的代碼是這樣的。
@Select("SELECT * FROM VACATION WHERE state='已請假' order by ${sort} limit ${page},${size}")
List<Vacation> getVacations(Pageable pageable);
修改成:
@Select("SELECT * FROM VACATION WHERE state='已請假' order by id limit ${page},${size}")
List<Vacation> getVacations(Pageable pageable);
就可以運行,我的功能也是能夠實作,現在就是想弄清楚sort在這里使用的方式。查看PageableDefault注解原始碼得知,這個sort是String【】,一個陣列型別。
有兩個問題:
1是在mybatis中查詢對陣列的引數怎么處理?
2 本例是否還有別的方式。在網上看到有些人在select陳述句中根本不適用這三個引數,我也嘗試了,這樣的pageable不起作用,不知道他們是怎么得到分頁資訊的,要怎么做呢?
uj5u.com熱心網友回復:
Mybatis 分頁建議用 PageHelperuj5u.com熱心網友回復:
不是 limit ${page},${size}"而是 limit ${offset},${size}")
分頁沒發現有好的插件,感覺自己寫比較合適
我原本以為spring的pageable,是可以獨立于mapper.xml
只要mapper配置查詢
自動能算出total
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/273446.html
標籤:Java相關
