我使用Spring Data JPA并使用hibernate从Child到Parent Class有多对一的关系。我正在编写一个搜索API,它将使用一些子表列搜索子表,并返回子对象的列表以及每个子对象的Parent类中的一些数据。我默认情况下急切地获取多对一关系。我面临的问题是让我们说在搜索子表后返回10个条目然后hibernate在父类上做10个不同的选择查询以获得每个子对象的Parent对象。有没有办法优化这个?对于类似问题here有一个解决方案,但它适用于一个或多个案例。我也无法在网上找到任何有用的信息。有什么想法吗?
答案 0 :(得分:0)
因为你没有在问题中显示任何代码,所以要解决它有点难,但我想如果你指定join column
(@JoinColumn
注释)并使用@OneToMany
注释parent
类{指定fetch
类型)和@ManyToOne
child
内你不应该有任何问题:
@Entity(name ="Parent")
public class Parent {
@Id
@Column
private int id;
@OneToMany(cascade = CascadeType.ALL, fetch = FetchType.LAZY)
@JoinColumn(name= "paren_id")
private Set<Child> children;
//getters and setters
}
@Entity(name ="Child")
public class Child{
@Id
@Column
private int id;
@ManyToOne
private Parent parent;
//getters and setters
}