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 2022-05-17 17:39  西伯尔  阅读(105)  评论(0编辑  收藏  举报