Java Hibernate-当链接表不仅仅包含外键时的多对多关系

Java Hibernate-当链接表不仅仅包含外键时的多对多关系,java,hibernate,many-to-many,Java,Hibernate,Many To Many,首先,我要感谢所有读到这篇文章的人。 我猜这个问题以前可能在这个论坛上被问过,但我找不到它,可能是因为我不知道如何搜索它。任何帮助都是非常有用的 在我的Java应用程序的数据库中,有两个表使用多对多关系相互关联。当然,它们之间有一个链接表 表1:模块 列:Id、名称等 表2:状态 列:Id,name 表3:模块状态 列:模块Id、状态Id、状态值 当我在hibernate中设置多对多关系时,生成的类模块有一个状态列表,但我需要的信息之一在Module_Status表中,这是给定模块上该状态的值。

首先,我要感谢所有读到这篇文章的人。 我猜这个问题以前可能在这个论坛上被问过,但我找不到它,可能是因为我不知道如何搜索它。任何帮助都是非常有用的

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

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

表2:状态
列:Id,name

表3:模块状态
列:模块Id、状态Id、状态值

当我在hibernate中设置多对多关系时,生成的类模块有一个状态列表,但我需要的信息之一在Module_Status表中,这是给定模块上该状态的值。

是否有一种方法可以配置框架,使我可以在模块对象中检索此信息?

模块状态表不仅仅是其他两个对象之间的联接表。它包含附加信息。因此,它是一个与所有其他表一样的函数表,应该映射为一个实体。你会这样做的

Module {
    @OneToMany
    Set<ModuleSatus>
}

ModuleStatus {
    @ManyToOne
    Module

    @ManyToOne
    Status
}

Status {
    @OneToMany
    Set<ModuleStatus>
}
模块{
@独身癖
设置
}
模块状态{
@许多酮
模块
@许多酮
地位
}
地位{
@独身癖
设置
}

为了使映射和您的生活更简单,您的模型更干净,我建议您也在这个模块状态表中添加一列自动生成的ID列,就像其他实体一样。

模块状态表不仅仅是其他两个实体之间的联接表。它包含附加信息。因此,它是一个与所有其他表一样的函数表,应该映射为一个实体。你会这样做的

Module {
    @OneToMany
    Set<ModuleSatus>
}

ModuleStatus {
    @ManyToOne
    Module

    @ManyToOne
    Status
}

Status {
    @OneToMany
    Set<ModuleStatus>
}
模块{
@独身癖
设置
}
模块状态{
@许多酮
模块
@许多酮
地位
}
地位{
@独身癖
设置
}
为了使映射和您的生活更简单,并且使您的模型更干净,我建议您也在这个Module_Status表中添加一列自动生成的ID列,就像其他实体一样