我正在将Spring Data JPA与Spring引导版本1.3.6.RELEASE与内存数据库一起使用。
我想知道如何从父实体 对子实体 进行 分页 。对我来说,将抓取设置为 LAZY 并不是解决方案。
这是用例:
这是一个代码示例:
@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);
这将返回父实体,而不是子实体。
任何想法如何做到这一点?
这是一个代码示例,可以获取知道父级的子级实体。请注意,此查询将返回分页的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));