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属性,用于总数的统计
作者:西伯尔
出处:http://www.cnblogs.com/sybil-hxl/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。