如何使用findByParentCode从OneToMany unidrectional Parent获取分页子列表

时间:2015-07-23 08:37:42

标签: jpa pagination spring-data

我有一个非正常的父母 - 孩子 我正在使用父级获取子列表 如何在子记录列表中应用分页?
例如:父P有子C1,C2,C3..C20 我确实findByParentCode(Code)返回带有Child列表的Parent对象。但我需要得到孩子的分页列表 请帮忙

2 个答案:

答案 0 :(得分:1)

您可以使用子对象中的父代码字段查询子对象的表,即Parent表的外键,如下所示:

Page<Child> findByParentId(Long parentId, Pageable pageRequest);

您可以使用Spring Data JPA分页支持对查询结果进行分页。如果需要,使用pageNumber,大小和排序创建PageRequest类的实例,并迭代页面,如下所示

Page<Child> page = null;
do {
    Pageable nextPageable = page != null ? page.nextPageable() : new PageRequest(0, pageSize);
    page = childService.findByParentId(parentId, nextPageable);
    processPage(page);
} while (page.hasNext());

答案 1 :(得分:0)

我已经为子列表(不知道其父级)进行了分页

Query query = getEntityManager().createQuery(
                "select s.chilidList from Parent s where s.ParentCode = :ParentCode");
        query.setParameter("ParentCode", ParentCode);
        query.setFirstResult(pageIndex);
        query.setMaxResults(pageSize);