Hibernate - 链接表不仅仅是外键时的多对多关系

时间:2013-07-20 15:19:14

标签: java hibernate many-to-many

首先,我要感谢大家阅读本文。 我想这个问题之前可能会在这个论坛上被问过,但我找不到它,可能因为我不知道如何搜索它。任何帮助都非常有用。

在我的Java应用程序的数据库中,有两个表使用多对多关系相互关联。当然,它们之间有一个链接表。

表1:模块
列:Id,名称等

表2:状态
列:Id,名称

表3:Module_status
列:Module_Id,Status_Id,Status_Value

当我在hibernate中设置多对多关系时,生成的类Module有一个Status列表,但是我需要的一个信息是在Module_status表中,这是给定Module上这个Status的值。登记/> 有没有办法以我可以在Module对象中检索此信息的方式配置框架?

1 个答案:

答案 0 :(得分:4)

Module_Status表不仅仅是其他两个表之间的连接表。它包含其他信息。因此它就像所有其他函数表一样,应该映射为实体。你会有

Module {
    @OneToMany
    Set<ModuleSatus>
}

ModuleStatus {
    @ManyToOne
    Module

    @ManyToOne
    Status
}

Status {
    @OneToMany
    Set<ModuleStatus>
}

为了使映射和您的生活更简单,并且模型清晰,我还建议您在此Module_Status表中添加单列自动生成的ID列,就像其他实体一样。