2012-02-07 2 views
0

Я пытаюсь изучить 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

Вы можете добавить Collection<Head> heads в вашем Group классе с @ManyToMany аннотацию. Затем Hibernate обработает таблицу HeadAndGroup.

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

Для получения более подробной информации см. here.

+0

Да, он создает таблицу с парами head_id и group_id. , но мне нужен еще один идентификатор (первичный ключ). Как можно справиться с этим? Btw, является ли head_id и group_id уникальной? – med

+0

Вы не можете добавить другие столбцы в таблицу спящего режима. Чтобы добавить еще один столбец, посмотрите на http://stackoverflow.com/a/1168740/643109 –

+0

, который является ответом. благодаря:) – med