1、默认的findAll或者findByxx,不用写sql的方法

  Page<SamlType> typePage = samlTypeDao.findAll(pageable);
  Page<ErrorReport> 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<DemandInvoke> findByProject(int pro, Pageable pageable);
  // 使用
  Page<DemandInvoke> 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<User> findByLastname(String lastname, Pageable pageable);

实现要点:
在查询语句结尾增加\n#pageable\n 传入分页信息
增加countQuery属性,用于总数的统计

参考:https://www.jianshu.com/p/cc73db8017f9

posted on   西伯尔  阅读(106)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)
点击右上角即可分享
微信分享提示