Hibernate @ManyToOne始终使用referencedColumnName加载实体

时间:2018-09-27 15:18:29

标签: hibernate

我有一个带有以下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。

0 个答案:

没有答案