JPA分页
1、默认的findAll或者findByxx,不用写sql的方法
Page typePage = samlTypeDao.findAll(pageable);
Page findByReportId(String reportId, Pageable pageable);
2、用自定义JPQL查询,还要用pageable
//定义,
// Pageable包总是自动引错,应该是:import org.springframework.data.domain.Pageable;
// JPQL语法与sql不一样。不等于用<>,还要用别名,不能用select*
@Query("SELECT d FROM DemandInvoke d WHERE d.project=?1 AND d.func1 <> 0 AND d.func2 <> 0")
Page findByProject(int pro, Pageable pageable);
// 使用
Page demandPage = demandInvokeDao.findByProject(pro, pageable);
3、用原生sql查询(nativeQuery = true)
没有用到,用到再说。
@Query(value = "SELECT * FROM USERS WHERE LASTNAME = ?1 \n#pageable\n",
countQuery = "SELECT count(*) FROM USERS WHERE LASTNAME = ?1",
nativeQuery = true)
Page findByLastname(String lastname, Pageable pageable);
实现要点:
在查询语句结尾增加\n#pageable\n 传入分页信息
增加countQuery属性,用于总数的统计
参考:https://www.jianshu.com/p/cc73db8017f9