亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何使用標準和分頁

如何使用標準和分頁

森林海 2021-09-12 16:11:07
大家好,我正在嘗試將標準與分頁一起使用,但我的代碼不起作用,這里是:public Page<Person> getAuthorizationsTest() {    PageRequest pageRequest = new PageRequest(1, 5);    CriteriaBuilder criteriaBuilder = em.getCriteriaBuilder();    CriteriaQuery<Person> queryBase = criteriaBuilder.createQuery(Person.class);    Root<Person> root = queryBase.from(Person.class);    List<Predicate> queryConditions = new ArrayList<>();    Predicate predicate = criteriaBuilder.like(root.get("name"), "%[myValue]%");    queryConditions.add(predicate);    queryBase.where(queryConditions.toArray(new Predicate[]{}));    TypedQuery<Person> query = em.createQuery(queryBase);    List<Person> list = query.getResultList();    Page<Person> authorizations = new PageImpl<Person>(list, pageRequest, list.size());    return authorizations;}一切看起來都很好,但是當我執行它時,我會收到一個包含所有結果的列表頁面,而不僅僅是我的 pageRequest 中指定的結果我究竟做錯了什么 ?
查看完整描述

2 回答

?
波斯汪

TA貢獻1811條經驗 獲得超4個贊

您沒有使用分頁請求:

列表列表 = query.getResultList();

此查詢將始終查詢所有結果,這是非常低效的。

相反,您應該以Spring 方式執行此操作,即您應該使用擴展 a 的存儲庫接口PagingAndSortingRepository(例如 JpaRepository 接口)。

然后只需使用一種方法對結果進行分頁,例如文檔中所述的 findAll :

PagingAndSortingRepository<User, Long> repository = // … get access to a bean
Page<User> users = repository.findAll(new PageRequest(1, 20));


查看完整回答
反對 回復 2021-09-12
  • 2 回答
  • 0 關注
  • 182 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號