Отображение нескольких внешних ключей

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

person med    schedule 07.02.2012    source источник


Ответы (1)


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

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

Подробнее см. здесь.

person Pulkit Goyal    schedule 07.02.2012
comment
Да, он создает таблицу с парами head_id и group_id. но мне нужен еще один идентификатор (первичный ключ). Как с этим справиться? Кстати, уникальна ли пара head_id и group_id? - person med; 07.02.2012
comment
Вы не можете добавить другие столбцы в сгенерированную таблицу спящего режима. Чтобы добавить еще один столбец, просмотрите stackoverflow.com/a/1168740/643109 - person Pulkit Goyal; 07.02.2012