第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

Spring data jpa 自定義存儲(chǔ)庫(kù)可分頁(yè)

Spring data jpa 自定義存儲(chǔ)庫(kù)可分頁(yè)

三國(guó)紛爭(zhēng) 2023-07-13 14:13:57
我創(chuàng)建了自定義存儲(chǔ)庫(kù)和其中的一種方法。我想將可分頁(yè)對(duì)象添加到該查詢中,以限制返回的項(xiàng)目。我創(chuàng)建了額外的方法,該方法將從所有項(xiàng)目中僅提取選定的頁(yè)面。但問題是,如果我有 50000 個(gè)項(xiàng)目,我需要獲取所有項(xiàng)目,然后僅從中獲取選定的頁(yè)面,這對(duì)性能非常不利。public List<Team> findTeamsForUser(long userId, long statusId, TeamCriteria criteria, Pageable pageable) {    StringBuilder sb = new StringBuilder("select team from Team team join TeamMember teamMember on teamMember.team.id=team.id where             teamMember.user.id=" + userId + " AND teamMember.status.id=" + statusId);    if(criteria!=null) {        if (criteria.getGameId() != null) {            sb.append(" AND team.game.id IN " + criteria.getGameId().getIn().toString().replace("[", "(").replace("]", ")"));        }    }    sb.append(" ORDER BY team.createdDate DESC");    Query query = entityManager.createQuery(sb.toString());    return query.getResultList();}我想以某種方式在該查詢中包含可分頁(yè)參數(shù),這樣我只能得到有限的項(xiàng)目。
查看完整描述

1 回答

?
忽然笑

TA貢獻(xiàn)1806條經(jīng)驗(yàn) 獲得超5個(gè)贊

您可以使用setMaxResults()和 setFirstResult()來Query限制記錄數(shù)和第一條返回記錄的偏移量。


setMaxResults()相當(dāng)于SQL 中的LIMITwhere 。setFirstResult()OFFSET


結(jié)合spring數(shù)據(jù),代碼如下Query: Pageable


Query query = entityManager.createQuery(sql.toString());

query.setMaxResults(pageable.getPageSize());

query.setFirstResult(pageable.getOffset());

假設(shè)每次要返回10條記錄。Pageable每頁(yè)的為


Pageable page1 = PageRequest.of(0, 10);  //Page 1 , offset=0  , limit=10

Pageable page2 = PageRequest.of(10, 10);  //Page 2 , offset=10 , limit=10

Pageable page3 = PageRequest.of(20, 10);  //Page 3 , offset=20 , limit=10

....

......

Pageable pageN = PageRequest.of((n-1)*10, 10);  //Page N , offset=(N-1)*10 , limit=10


查看完整回答
反對(duì) 回復(fù) 2023-07-13
  • 1 回答
  • 0 關(guān)注
  • 109 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)