我一直在尝试优化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 双向关联?但不能让我的正常运行。有什么建议吗?非常感谢。