0

我一直在尝试优化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;
...

尽管它很急切(它必须是那样)它执行 N + 1 个查询,其中一个是 AnoEmp 列表,一个是每个 Empleado。但这可以通过一个查询来完成(正如我所期望的那样,因为@eager)

我发现这个Why hibernate perform two queries for eager load a @OneToOne 双向关联?但不能让我的正常运行。有什么建议吗?非常感谢。

4

1 回答 1

0

我发现唯一一直在工作的就是join在 JPQL 中使用,例如

   "from Empleado emp join emp.anosEmp"
于 2012-10-15T15:43:24.917 回答