Spring Boot Data Jpa中使用mybatis分页插件的问题

1.项目配置Mybatis分页插件

在application.yml中配置如下:

#######################pageHelper#######################
pagehelper:
     helper-dialect: mysql
     params: count=countSql
     reasonable: false
     support-methods-arguments: true

2.pom.xml文件加入依赖

    <dependency>
        <groupId>com.github.pagehelper</groupId>
        <artifactId>pagehelper</artifactId>
        <version>5.0.0</version>
    </dependency>
    <dependency>
        <groupId>com.github.pagehelper</groupId>
        <artifactId>pagehelper-spring-boot-autoconfigure</artifactId>
        <version>1.2.3</version>
    </dependency>
    <dependency>
        <groupId>com.github.pagehelper</groupId>
        <artifactId>pagehelper-spring-boot-starter</artifactId>
        <version>1.2.3</version>
    </dependency>

3.如果你的Service(TpShortService)是直接继承JpaRepository这个类

public interface TpShortService extends JpaRepository<TpShort, Integer>{

那么你在这个类下面写的方法
在这里插入图片描述
包括你使用JpaRepository自带的18个CURD方法查询出来的结果集放在PageInfo中

public R testPage(Integer shortId,@RequestParam(value="pageNow",defaultValue="1")Integer pageNow,
			@RequestParam(value="pageSize",defaultValue="1") Integer pageSize) {
		//开始分页
        Page<Object> startPage = PageHelper.startPage(pageNow,pageSize);
        //执行查询
        List<TpShort> list = tpShortService.findAll(); //这个是jpa的方法
        //将list放入到pageInfo对象中
        PageInfo<TpShort> page = new PageInfo<TpShort>(list);
        return R.ok().put("page", page);

你会发现你查询出来的结果还是显示全部并没有分页 ,Jpa 的方法无法和mybatis分页插件配合使用。

4.解决问题

最直接的解决方法是不使用jpa的查询方法 ,将该方法写在Dao层下面,sql语句在xml文件中 这种亲测有效 或者
在这里插入图片描述

public R testPage(Integer shortId,@RequestParam(value="pageNow",defaultValue="1")Integer pageNow,
			@RequestParam(value="pageSize",defaultValue="1") Integer pageSize) {
		//开始分页
        Page<Object> startPage = PageHelper.startPage(pageNow,pageSize);
        //将list放入到pageInfo对象中
        PageInfo<TpShort> pageInfo = new PageInfo<TpShort>(tpShortMapper.getAll());//这个是mybatis自己写的sql方法
		return R.ok().put("pageInfo", pageInfo);
	}

如图所示

©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页