我将 Spring Data JPA 与 Spring Boot 版本 1.3.6.RELEASE 与内存数据库一起使用。
我想知道如何为子实体分页 来自父实体。
将获取设置为 懒惰 对我来说不是解决方案。
这是用例:
这是一个代码示例:
@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));
关于java - Spring 数据 JPA。子实体的分页,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39192091/