【问题标题】:Multiple foreign key mapping多个外键映射
【发布时间】:2012-02-07 11:18:39
【问题描述】:

我正在尝试学习 Hibernate,但我无法解决设计问题。 我有头班和小组班。我使用 hibernate 生成了下面列出的两个表。

Table-Head
id, int4, primary key
name, varchar 50
description, varchar 250

Table-Group 
id, int4, primary key
name, varchar 25
description, varchar 250

我只想问如何生成下面列出的 HeadAndGroup 表?我试图将 HeadAndGroup 编写为单独的类,但我无法处理它。

Table HeadAndGroup (Many to Many)
id , int4, primary key
head_id , int4, foreign key -> head table
group_id , int4, foreign key -> group table


**head_id, group_id pair will be unique

【问题讨论】:

    标签: hibernate foreign-keys hibernate-mapping


    【解决方案1】:

    您可以使用@ManyToMany 注释在您的Group 类中添加Collection<Head> heads。然后 Hibernate 将为您处理 HeadAndGroup 表。

    @ManyToMany(
        targetEntity=Head.class,
        cascade={CascadeType.PERSIST, CascadeType.MERGE}
    )
    public Collection getHeads() {
        return heads;
    }
    

    查看here了解详情。

    【讨论】:

    • 是的,它使用 head_id 和 group_id 对创建表。但我还需要一个 id(主键)属性。怎么能处理这个?顺便说一句,head_id 和 group_id 对是唯一的吗?
    • 您不能将其他列添加到休眠生成的表中。要添加另一列,请查看stackoverflow.com/a/1168740/643109
    猜你喜欢
    • 1970-01-01
    • 2012-11-30
    • 2014-05-31
    • 2017-02-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-07-01
    相关资源
    最近更新 更多