Hibernate @JoinTable问题

时间:2011-02-22 13:52:26

标签: hibernate jointable

我对Hibernate 3.5有一个奇怪的问题,我希望有人可以帮助我。

上下文

  • FAC拥有零个或多个“核心”SECT。
  • FAC有零个或多个“相关”SECT。
  • SECT只有一个父级FAC。

我有一个名为 fac_sect 的连接表,该表格包含以下列: fac_related_sect_id sect_id fac_core_sect_id

SECT可以通过fac_core_sect_id列与父FAC相关联。

我的Sect实体类中有以下内容:

@ManyToOne
@JoinTable(name = "fac_sect", joinColumns = { @JoinColumn(name = "sect_id")},
            inverseJoinColumns = { @JoinColumn(name = "fac_core_sect_id") })
public Fac getParentFac() {
    return parentFac;
}

问题 这似乎工作正常,* fac_sect *中的特定* sect_id *有2行;一行映射到* fac_core_sect_id *,第二行映射到* fac_related_sect_id *。

但是在* fac_sect *中,getParentFac()返回null * * sect_id *对* fac_related_sect_id *有多行。

我不明白为什么会发生这种情况,因为我的@JoinTable注释似乎指定了正确的连接列和反向连接列。我甚至不要求Hibernate在连接中包含* fac_related_sect_id *列。

希望有道理,希望有人可以帮助我:)。

1 个答案:

答案 0 :(得分:0)

我通过创建2个新的连接表来解决这个问题,每个连接表只有两列。