Как мне удается создать отношения многие ко многим.Сгенерированный объект будет иметь дополнительные атрибуты. - PullRequest
1 голос
/ 10 ноября 2010

У меня есть 2 лица: класс (студентов) и студент. Студент может быть во многих классах (как в колледже), и в классе много студентов. Проблема заключается в том, чтобы гарантировать, что этот объект, сгенерированный посередине, имеет 2 первичных ключа, идентификаторы каждого другого объекта (ученик и класс). Мне нужно знать, как создать его с помощью аннотаций. Я использую аннотации EJB3 и JPA в проекте.

Ответы [ 2 ]

3 голосов
/ 10 ноября 2010

Во-первых, вам не нужна средняя сущность.У вас есть две сущности и таблица соединения между ними.

Промежуточная сущность нужна вам, только если у вас есть дополнительная информация об отношении - например, у StudentClass может быть столбец timesAbsent.

Если вам действительно нужна третья сущность, вы можете иметь:

  1. an @EmbeddedId, где вы определяете отдельный класс, содержащий две частипервичный ключ.Этот класс должен быть @Embeddable
  2. и @IdClass, что позволит вам указать два поля @Id.Вам снова понадобится другой класс для хранения двух полей, представляющих ключ.

См. Этот вопрос , какую опцию выбрать.

Обратите внимание, что вы таким образомиметь составной первичный ключ, а не два первичных ключа (которых у вас нет)

0 голосов
/ 10 ноября 2010

Я знаю, как это сделать, используя спящий режим. Может быть, это поможет.

Сделать тип коллекции Set.

 public class CollegeClass { 
     private Set<Student> students;
 }

 public class Student { 
     private Set<CollegeClass> classes; 
 }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...