Hibernate执行多个查询而不是一个查询

时间:2012-10-15 14:22:58

标签: hibernate hql

我一直在尝试优化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?但是无法正常运行。有什么建议吗?非常感谢你。

1 个答案:

答案 0 :(得分:0)

我唯一能找到的工作就是在JPQL中使用join,例如

   "from Empleado emp join emp.anosEmp"
相关问题