2012-02-07 120 views
0

我想学习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 

回答

1

您可以在Group@ManyToMany注释添加Collection<Head> heads。然后Hibernate会为你处理HeadAndGroup表。

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

查看详情,请看here

+0

是的,它用head_id和group_id对创建表。 但我需要一个更多的id(主键)attribure。如何处理这个问题? 顺便说一下,head_id和group_id对是唯一的吗? – med 2012-02-07 12:40:01

+0

您不能将其他列添加到休眠生成的表中。要添加另一列,请查看http://stackoverflow.com/a/1168740/643109 – 2012-02-07 15:30:07

+0

这就是答案。谢谢:) – med 2012-02-07 17:34:58