使用mybatis,想利用spring data的Pageable的问题
在网站上看到很多人提到分页查询使用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不起作用,不知道他们是怎么得到分页信息的,要怎么做呢?