0

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

语境:

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

我有一个名为fac_sect的关节,该表具有以下列: fac_related_sect_idsect_idfac_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 行;第一行将 a 映射到 *fac_core_sect_id*,第二行映射到 *fac_related_sect_id*。

但是当 *fac_sect* 中的 *sect_id* 有超过一行的 *fac_related_sect_id* 时,getParentFac() 返回 null。

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

希望这是有道理的,我希望有人可以帮助我:)

4

1 回答 1

0

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

于 2011-02-24T12:07:35.080 回答