我有以下实体关系:
@Entity
public class Parent {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(columnDefinition = "serial")
private Long id;
@OneToMany(mappedBy = "parent", fetch = FetchType.LAZY)
private List<Child> children;
}
和子实体:
@Entity
public class Child {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(columnDefinition = "serial")
private Long id;
@ManyToOne(optional = false, fetch = FetchType.LAZY)
private Parent parent;
}
我使用Spring JPA存储库,因此对于调用数据,我使用默认方法parentRepository.findOne(id)
我需要获取父实体的List,其中Parent的每个实体将被获取有限大小的Children,例如10。
你能告诉我是否有可能使用JQPL或HQL以及这个选择是什么样的?提前谢谢。
修改
我没试过像这样使用hibernate注释@BatchSize:
@BatchSize(size = 5)
@OneToMany(mappedBy = "parent", fetch = FetchType.LAZY)
private List<Child> children;
但是没有用,当我取来父母所有的孩子都被抓住了。
答案 0 :(得分:0)
使用这种方式
@OneToMany(mappedBy = "parent", fetch = FetchType.LAZY)
@Size(min=1, max=3)
private List<Child> children;