Spring Data JPA實(shí)現(xiàn)分頁(yè)P(yáng)ageable的實(shí)例代碼
在JPA中提供了很方便的分頁(yè)功能,那就是Pageable(org.springframework.data.domain.Pageable)以及它的實(shí)現(xiàn)類PageRequest(org.springframework.data.domain.PageRequest),詳細(xì)的可以見(jiàn)示例代碼。
1、改變CustomerRepository方法
/**
* 一個(gè)參數(shù),匹配兩個(gè)字段
* @param name2
* @Param pageable 分頁(yè)參數(shù)
* @return
* 這里Param的值和=:后面的參數(shù)匹配,但不需要和方法名對(duì)應(yīng)的參數(shù)值對(duì)應(yīng)
* 這里增加了@QueryHints注解,是給查詢添加一些額外的提示
* 比如當(dāng)前的name值為HINT_COMMENT是在查詢的時(shí)候帶上一些備注信息
*/
@QueryHints(value = { @QueryHint(name = HINT_COMMENT, value = "a query for pageable")})
@Query("select c from Customer c where c.firstName=:name or c.lastName=:name")
Page<Customer> findByName(@Param("name") String name2,Pageable pageable);
2、增加CustomerController方法pageable
/**
* 分頁(yè)
* 應(yīng)用查詢提示@QueryHints,這里是在查詢的適合增加了一個(gè)comment
* 查詢結(jié)果是lastName和firstName都是bauer這個(gè)值的數(shù)據(jù)
*/
@RequestMapping("/pageable")
public void pageable(){
//Pageable是接口,PageRequest是接口實(shí)現(xiàn)
//PageRequest的對(duì)象構(gòu)造函數(shù)有多個(gè),page是頁(yè)數(shù),初始值是0,size是查詢結(jié)果的條數(shù),后兩個(gè)參數(shù)參考Sort對(duì)象的構(gòu)造方法
Pageable pageable = new PageRequest(0,3, Sort.Direction.DESC,"id");
Page<Customer> page = repository.findByName("bauer",pageable);
//查詢結(jié)果總行數(shù)
System.out.println(page.getTotalElements());
//按照當(dāng)前分頁(yè)大小,總頁(yè)數(shù)
System.out.println(page.getTotalPages());
//按照當(dāng)前頁(yè)數(shù)、分頁(yè)大小,查出的分頁(yè)結(jié)果集合
for (Customer customer: page.getContent()) {
System.out.println(customer.toString());
}
System.out.println("-------------------------------------------");
}
從示例代碼的注釋當(dāng)中可以看到Page對(duì)象的相關(guān)參數(shù)及值的說(shuō)明,更詳細(xì)的用法,參考PageRequest源碼。
小結(jié):怎么樣,是不是很簡(jiǎn)單很方便?!
參考:
官方文檔,http://docs.spring.io/spring-data/jpa/docs/current/reference/html/
DEMO,https://github.com/icnws/spring-data-jpa-demo
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
解決mybatis 執(zhí)行mapper的方法時(shí)報(bào)空指針問(wèn)題
這篇文章主要介紹了解決mybatis 執(zhí)行mapper的方法時(shí)報(bào)空指針問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-07-07
使用springboot每日推送早安問(wèn)候語(yǔ)到用戶微信的全過(guò)程
近期網(wǎng)上又出現(xiàn)一股給女朋友做微信公眾號(hào)推送的潮流,所以這篇文章主要給大家介紹了關(guān)于如何使用springboot每日推送早安問(wèn)候語(yǔ)到用戶微信的相關(guān)資料,文中通過(guò)圖文以及實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2022-11-11
SpringBoot中4種接口冪等性的實(shí)現(xiàn)策略
冪等性是指對(duì)同一操作執(zhí)行多次與執(zhí)行一次的效果相同,不會(huì)因?yàn)橹貜?fù)執(zhí)行而產(chǎn)生副作用,本文整理了4個(gè)SpringBoot實(shí)現(xiàn)接口冪等性的方法,大家可以根據(jù)需要進(jìn)行選擇2025-04-04
解決Spring?Security集成knife4j訪問(wèn)接口文檔出現(xiàn)403的問(wèn)題
這篇文章主要給大家介紹了如何解決Spring?Security集成knife4j訪問(wèn)接口文檔出現(xiàn)403的問(wèn)題,文中有詳細(xì)的解決方案,有需要的朋友可以參考閱讀下2023-07-07
java實(shí)現(xiàn)滑動(dòng)驗(yàn)證解鎖
這篇文章主要為大家詳細(xì)介紹了java實(shí)現(xiàn)滑動(dòng)驗(yàn)證解鎖,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2020-07-07
Java 根據(jù)url下載網(wǎng)絡(luò)資源
這篇文章主要介紹了Java 根據(jù)url下載網(wǎng)絡(luò)資源的示例代碼,幫助大家更好的理解和使用Java,感興趣的朋友可以了解下2020-11-11
Spring框架學(xué)習(xí)之Spring?@Autowired實(shí)現(xiàn)自動(dòng)裝配的代碼
自動(dòng)裝配就是說(shuō),你不用手動(dòng)實(shí)現(xiàn)bean之間的組合關(guān)系,只要使用了@Autowired注解,程序就會(huì)自動(dòng)的注入這個(gè)需要的bean,前提是你的Spring容器有這個(gè)bean,這篇文章主要介紹了Spring?@Autowired實(shí)現(xiàn)自動(dòng)裝配,需要的朋友可以參考下2021-12-12

