我一直在尝试优化hibernate实现某些信息的方式,但我无法理解下一个问题。
我有一个像这样的实体
public class AnoEmp{
//bi-directional many-to-one association to Empleado
@ManyToOne(fetch=FetchType.EAGER)
@JoinColumn(name="ID_EMPLEADO", nullable=false, insertable=false, updatable=false)
private Empleado empleado;
}
...
另一个像这样
public class Empleado{
//bi-directional many-to-one association to AnoEmp
@JsonIgnore
@OneToMany(mappedBy="empleado", fetch=FetchType.LAZY)
private List<AnoEmp> anosEmp;
...
虽然它很渴望(并且它必须像那样)它对AnoEmp列表执行N + 1个查询,对每个Empleado执行一个查询。但它可以通过一个查询完成(正如我预期的那样是@eager)
我发现这个Why hibernate perform two queries for eager load a @OneToOne bidirectional association?但是无法正常运行。有什么建议吗?非常感谢你。
答案 0 :(得分:0)
我唯一能找到的工作就是在JPQL中使用join
,例如
"from Empleado emp join emp.anosEmp"