如何解决Spring Data JPA儿童实体分页
这是一个代码示例,可以获取知道父级的子级实体。请注意,此查询将返回分页的Child结果。
/**
* Find Child entities knowing the Parent.
*/
@Query("select child from Parent p inner join p.childs child where p = :parent")
public Page<Child> findBy(@Param("parent") Parent parent, Pageable pageable);
您可以像这样使用它:
Page<Child> findBy = repo.findBy(parent, new PageRequest(page, size));
解决方法
我正在将Spring Data JPA与Spring引导版本1.3.6.RELEASE与内存数据库一起使用。
我想知道如何从父实体 对子实体 进行 分页 。对我来说,将抓取设置为 LAZY 并不是解决方案。
这是用例:
- 父 级与子级 实体 具有 单向的“ 一对多”关系。 __
- 一位 家长 的 孩子 数量可以达到100,000(LAZY不是解决方案) __
- 我不想获取所有孩子进行分页(出于CPU和内存的原因)
这是一个代码示例:
@Entity
public class Parent{
@Id
private Integer id;
@OneToMany
private List<Child> childs;
}
@Entity
public class Child {
@Id
private Integer id;
}
public interface ParentRepository extends JpaRepository<Parent,Integer>{}
public interface ChildRepository extends JpaRepository<Child,Integer>{}
我在父存储库中尝试了此失败:
Page<Child> findById(int id,Pageable pageable);
这将返回父实体,而不是子实体。
任何想法如何做到这一点?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。