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)文章
Java對(duì)象數(shù)組的添加、刪除和遍歷代碼示例
在Java編程中,我們經(jīng)常需要對(duì)數(shù)據(jù)結(jié)構(gòu)進(jìn)行遍歷操作,并根據(jù)業(yè)務(wù)需求刪除部分元素,這篇文章主要給大家介紹了關(guān)于Java對(duì)象數(shù)組的添加、刪除和遍歷的相關(guān)資料,需要的朋友可以參考下2024-04-04Spring Boot Rest控制器單元測(cè)試過(guò)程解析
這篇文章主要介紹了Spring Boot Rest控制器單元測(cè)試過(guò)程解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-03-03spring boot+thymeleaf+bootstrap實(shí)現(xiàn)后臺(tái)管理系統(tǒng)界面
這篇文章主要為大家詳細(xì)介紹了spring boot+thymeleaf+bootstrap簡(jiǎn)單實(shí)現(xiàn)后臺(tái)管理系統(tǒng)界面,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-12-12java編程之AC自動(dòng)機(jī)工作原理與實(shí)現(xiàn)代碼
這篇文章主要介紹了java編程之AC自動(dòng)機(jī)的有關(guān)內(nèi)容,涉及其應(yīng)用場(chǎng)景,運(yùn)行原理,運(yùn)行過(guò)程,構(gòu)造方法及Java中的實(shí)現(xiàn)代碼,具有一定參考價(jià)值,需要的朋友可以了解下。2017-11-11淺談@Value和@Bean的執(zhí)行順序問(wèn)題
這篇文章主要介紹了@Value和@Bean的執(zhí)行順序問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-06-06java?LockSupport實(shí)現(xiàn)原理示例解析
這篇文章主要為大家介紹了java?LockSupport實(shí)現(xiàn)原理示例解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-01-01如何利用Java8 Stream API對(duì)Map按鍵或值排序
這篇文章主要給大家介紹了關(guān)于如何利用Java8 Stream API對(duì)Map按鍵或值排序的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者使用Java8具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-11-11MyBatis使用注解開(kāi)發(fā)和無(wú)主配置文件開(kāi)發(fā)的情況
這篇文章主要介紹了MyBatis使用注解開(kāi)發(fā)和無(wú)主配置文件開(kāi)發(fā)的情況,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-03-03spring boot 統(tǒng)一JSON格式的接口返回結(jié)果的實(shí)現(xiàn)
這篇文章主要介紹了spring boot 統(tǒng)一JSON格式的接口返回結(jié)果的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-10-10