繁体   English   中英

如何在 JPA 查询中返回页面而不是列表

[英]How to return Page instead of List on a JPA query

如何在以下本机 JPA 查询中返回 Page 而不是 List 如何将 Pageable 作为参数处理以返回分页列表

@Query(nativeQuery = true, value = "select * from foos where bar_id=:barId")
List<FooBar> findFoosByBarId(Long barId, Pageable pageable);

@Entity
@Table(name = "foo_bars")
public class FooBar {

    @ManyToOne
    Foo foo;
 
    @ManyToOne
    Bar bar;
}

您必须返回Page<FooBar>而不是List<FooBar>

@Query(nativeQuery = true, value = "select * from foos where bar_id=:barId")
Page<FooBar> findFoosByBarId(Long barId, Pageable pageable);

然后可以这样调用方法:

Pageable pageable = PageRequest.of(0, 5, Sort.by(Sort.Direction.DESC, "id"));
Page<FooBar> page = foosRepository.findFoosByBarId(barId, pageable);

page变量上,你可以调用几个有用的方法:

  • page.getContent()检索页面元素列表
  • page.getTotalElements()获取所有元素的数量
  • page.getTotalPages()获取页数

这里Page类的其他方法。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM