国产激情自拍_国产9色视频_丁香花在线电影小说观看 _久久久久国产精品嫩草影院

首頁 > 開發(fā) > Java > 正文

Spring Data分頁與排序的實(shí)現(xiàn)方法

2024-07-14 08:43:00
字體:
供稿:網(wǎng)友

前言

在實(shí)際項(xiàng)目中對(duì)Spring Data的各種使用相當(dāng)多,簡單的增刪改查Spring Data提供了現(xiàn)成的方法,一些復(fù)雜的,我們可以在接口方法寫And,Not等關(guān)鍵字來搞定,想寫原生SQL,CQL(Neo4j),Query DSL (Elasticsearch)的,直接使用@Query(“......”)注解搞定,真的是方便到不行!

當(dāng)我們執(zhí)行批量操作時(shí),比如從數(shù)據(jù)庫中查找“Person”的所有實(shí)例或者根據(jù)國家查找每個(gè)人,我們經(jīng)常進(jìn)行分頁,以便我們可以向最終用戶提供一個(gè)小數(shù)據(jù)塊,并在下一個(gè)請求中,我們獲取下一個(gè)數(shù)據(jù)塊。

Spring Data為分頁提供支持。它創(chuàng)建了實(shí)現(xiàn)分頁的所有邏輯,例如所有頁面的行計(jì)數(shù)等等。

在Spring Data中實(shí)現(xiàn)分頁非常簡單。我們只需要按照以下步驟操作:

  • 在自定義存儲(chǔ)庫中,擴(kuò)展  PagingAndSortingRepository。
  • 創(chuàng)建PageRequest對(duì)象,該對(duì)象是Pageable接口的實(shí)現(xiàn)。  此PageRequest對(duì)象獲取頁碼,頁面大小以及排序方向和排序字段。
  • 通過傳遞請求的頁碼和頁面限制,您可以獲取此頁面的數(shù)據(jù)。如果您傳遞錯(cuò)誤的頁碼,Spring Data將負(fù)責(zé)處理并且不返回任何數(shù)據(jù)。

1.創(chuàng)建擴(kuò)展PagingAndSortingRepository的存儲(chǔ)庫。

@Repositorypublic interface PersonRepositary extends PagingAndSortingRepository<Person, Long>,QueryDslPredicateExecutor<Person> { @Query("select p from Person p where p.country like ?1 order by country") List<Person> findByCountryContains(String country); List<Person> findPersonByHobbyName(String name); @Query("select p from Person p where p.id = ?1 and country='America'") Person findOne(Long id);}

2.  創(chuàng)建域?qū)ο蟆?/p>

@Entitypublic class Person { @Id @GeneratedValue(strategy=GenerationType.AUTO) private Long id; private String name; private String country; private String gender;@OneToMany(mappedBy="person",targetEntity=Hobby.class,  fetch=FetchType.EAGER,cascade=CascadeType.ALL)  List<Hobby> hobby;public String getName() { return name;}public void setName(String name) { this.name = name;}public String getCountry() { return country;}public void setCountry(String country) { this.country = country;}public String getGender() { return gender;}public void setGender(String gender) { this.gender = gender;}public Long getId() { return id;}public void setId(Long id) { this.id = id;}public List<Hobby> getHobby() { return hobby;}public void setHobby(List<Hobby> hobby) { this.hobby = hobby;}public void addHobby(Hobby ihobby){ if(hobby == null) {  hobby = new ArrayList<Hobby>(); } hobby.add(ihobby);} @Override public String toString() {  return "Person [id=" + id + ", name=" + name + ", country=" + country + ", gender=" + gender + "]"; }}

3.獲取所有人員。創(chuàng)建一個(gè)限制為1的PageRequest對(duì)象并請求第一頁。

@SpringBootApplication@EnableJpaRepositories("com.example.repo")public class PersonApplication { @Autowired HobbyRepository hRepo; private static final Logger log = LoggerFactory.getLogger(PersonApplication.class); @Bean public CommandLineRunner demo(PersonRepositary repository) {  findAll(repository);  return null; } private PageRequest gotoPage(int page) {  PageRequest request = new PageRequest(page,1)  return request; } private void findAll(PersonRepositary repository) {  Iterable<Person> pList = repository.findAll(gotoPage(0));  for(Person p : pList)   log.info("Person " + p); } public static void main(String[] args) {  SpringApplication.run(PersonApplication.class, args); }}

運(yùn)行時(shí)SQL輸出:

Hibernate: 
    select
        count(person0_.id) as col_0_0_ 
    from
        person person0_
Hibernate: 
    select
        person0_.id as id1_1_,
        person0_.country as country2_1_,
        person0_.gender as gender3_1_,
        person0_.name as name4_1_ 
    from
        person person0_ limit ?
Person Person [id=13, name=Samir mitra, country=America, gender=male]

分頁和排序代碼實(shí)現(xiàn)

要進(jìn)行排序,我們必須傳遞排序方向和排序字段以及頁碼和限制。假設(shè)我們想按國家名稱按升序排序 - 我們修改  goto 方法如下:

private PageRequest gotoPage(int page){ PageRequest request = new PageRequest(page,1,Sort.Direction.ASC,"country"); return request;}

SQL輸出:

select
        count(person0_.id) as col_0_0_ 
    from
        person person0_
Hibernate: 
    select
        person0_.id as id1_1_,
        person0_.country as country2_1_,
        person0_.gender as gender3_1_,
        person0_.name as name4_1_ 
    from
        person person0_ 
    order by
        person0_.country asc limit ?

總結(jié)

以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,如果有疑問大家可以留言交流,謝謝大家對(duì)VeVb武林網(wǎng)的支持。


注:相關(guān)教程知識(shí)閱讀請移步到JAVA教程頻道。
發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
国产激情自拍_国产9色视频_丁香花在线电影小说观看 _久久久久国产精品嫩草影院
69国产精品| av大片在线| 日本一二区视频| 日p在线观看| 尤物视频在线观看视频| 尤物在线视频观看| 日本动漫同人动漫在线观看| av在线不卡播放| 啪啪免费视频一区| 高清欧美精品xxxxx在线看| 久久亚洲国产成人亚| 激情综合网五月激情| 国产三级在线| 青青草在线视频免费观看| 久久er视频| 久热久精久品这里在线观看| 国产一卡二卡3卡4卡四卡在线| 国产日本在线视频| 四虎www视频| 国产中文第一页| 99综合精品久久| 国产小视频在线观看| 精品成人一区二区三区免费视频| 亚洲精品xxxxx| 国产美女高潮| 亚洲综合在线网| 国产一卡二卡3卡4卡四卡在线| 亚洲一区免费在线| 国产一级大片| 国产中文在线视频| 99在线免费观看| 国产黄色免费网| 国产蜜臀av在线播放| 在线观看的av| av丝袜在线| 在线看黄网站| av片在线观看| av影视在线看| 在线免费观看你懂的| 国产高清在线看| 国产日本视频| 国产精品二线| 国产一卡2卡3卡免费网站| 中文字幕在线视频不卡| 国产鲁鲁视频在线观看免费 | 欧美精品久久久久久久小说| 精品视频一二区| 91www在线观看| 在线成人一区| 四虎a级欧美在线观看| 亚洲精品久久久成人| 伊人资源视频在线| 天天艹天天操| 久草电影在线| 国产亚av手机在线观看| 91国内在线| 欧美精品久久久久久久小说| 毛片视频免费观看| 免费在线播放av| 日本中文字幕高清视频| 国产高清在线观看| 日韩不卡高清| 国产人成在线观看| 日本黄在线观看| 国产香蕉免费精品视频| 亚洲www色| 日本中文字幕在线看| 99久久国产视频| 午夜国产福利在线| 亚洲精品影院在线| 中文字幕第一页在线| av黄色在线观看| 国产字幕在线看| 国产网红在线| jlzzjlzz欧美| 国产a国产a国产a| 国产免费黄网站| www.蜜桃av| 在线亚洲不卡| 国产精品日日爱| 成人无遮挡免费网站视频在线观看| 国产成人精品自线拍| 九九视频九九热| wwww在线观看| 在线视频xx| 国产成人久久精品77777| 毛片视频免费观看| 在线国产一级| 国产黄大片在线观看画质优化| 欧美婷婷久久五月精品三区| 精品亚洲综合| 91av福利| 中文字幕2019第三页| 国产黄色免费| 国产无套粉嫩白浆在线2022年| 欧美日韩在线精品成人综合网| 精品视频二区| 在线观看电影av| 国产高清在线| 国产视频三区| 国产成人亚洲精品播放器下载| 国产一卡2卡3卡四卡网站| 国产精品一二三区视频| 免费观看一二区视频网站| 亚洲综合色视频在线观看| 精品999视频| 在线成人一区| www免费在线观看| 另类专区欧美| 中文字幕一区免费| 精品999视频| 秋霞av在线| 中文字幕日本在线| 国产天堂av| 伊人影院蕉久影院在线播放| 日本福利在线观看| 国产免费福利| 91黄色在线| 香蕉视频在线看| 成在线人视频免费视频| 国产亚洲依依| 伊人222成人综合网| 欧美精品se| 国产成人精品久久一区二区小说| 精品街拍一区二区| 麻豆视频国产| 精品一区二区三区免费站| 青青国产在线| 国产日韩欧美一区二区三区视频| 国产porn在线| 久久国产热视频| 一级二级三级在线观看| 国产美女视频一区二区二三区 | www.狠狠色.com| 国产在线观看18| 性网站在线观看| 国产一区二区三区不卡在线| gogogogo高清视频在线| 国产精品欧美色图| 国产中文字幕网| 亚洲精品乱码电影在线观看| 国产香蕉免费精品视频| 久热久精久品这里在线观看| 国产对白叫床清晰在线播放| 国产女人在线视频| 在线免费观看高清视频色| 中文字幕毛片| 黄色三级视频在线观看| 日本在线天堂| 亚洲夜夜综合| 夜夜嗨yeyeh| 中文在线视频| 一本大道香蕉8中文在线视频| 国产精品秘入口| 国产网站免费观看| 国产农村av| 国产女人在线观看| 国产麻豆麻豆| 国产乱在线观看视频| 久久久久久77777| 天天插天天射| 日本免费一二区| 日本调教视频在线观看| 先锋影音av中文字幕| 亚洲国产aⅴ精品| 国产不卡在线| 在线国产1区| аⅴ成人天堂中文在线| 蜜桃av网站| 国产图片综合| av激情在线| 麻豆精品视频入口| 国产自产视频| 国产一级黄色| 在线看黄色av| 欧美激情福利视频在线观看免费| www.麻豆av.com| 高清在线观看av| 国产亚洲精品午夜高清影院 | 在线午夜视频| 久久99精品久久久久久野外| 可以免费看污视频的网站| 午夜不卡视频| 在线色视频网| 日本中文字幕高清视频| 91视频久色| free性亚洲| 午夜av在线播放| 99爱在线观看| 国产小视频免费在线观看| 精品999视频| 国产麻豆视频网站| av首页在线| 国产二级片在线| 超碰免费在线观看| 国产馆av播放| 午夜伦全在线观看| 免费看成年人视频在线观看| 99reav| 国产网红在线|