我有一个带有以下Hibernate映射的CurrentValue类。它通过referencedColumnName映射实体:
@Table(name = "CURRENTVALUE")
public class CurrentValue {
@ManyToOne(fetch = FetchType.LAZY, cascade = CascadeType.PERSIST)
@Cascade(org.hibernate.annotations.CascadeType.SAVE_UPDATE)
@JoinColumn(name = "ENTITYVALUEID", referencedColumnName = "COMPOSITEVALUED")
private EntityValue entityValue;
...
}
当我通过HQL查询加载实体CurrentValue时,它将始终加载实体EntityValue。在TwoPhaseLoad类中,此对象在dehydratedState-array中触发了doInitializeEntity方法。我似乎无法弄清楚为什么这样做,即使它是懒惰的。即使我在HQL查询中加入了FETCH,它仍然会执行SELECT语句。这是故意的,我对此无能为力吗?
使用Hibernate 5.2.17.Final。