ManyToMany свойства - PullRequest
       3

ManyToMany свойства

0 голосов
/ 16 октября 2011

Это может быть глупый вопрос или может быть задан, но я не нашел, что мне помогло. Может кто-нибудь из вас, ребята, расскажет, что делают эти свойства, описанные в отношении ManyToMany. И если есть что-то, что я пропустил и должен быть использован в отображении ManyToMany, пожалуйста, помогите мне с этим тоже.

@ManyToMany(cascade = CascadeType.ALL)
@JoinTable(name = "customer_service",
    joinColumns = {@JoinColumn(name = "customer_id")},
    inverseJoinColumns = @JoinColumn(name = "service_id"))

1 Ответ

0 голосов
/ 16 октября 2011

Это описание отношения «многие ко многим» между (я предполагаю) Customer и Service таблицами. Технически все атрибуты являются необязательными, поэтому:

@ManyToMany
private Set<Customer> services;

в Service было бы хорошо (аналогичные аннотации на стороне Customer, если отношение двунаправленное).

Теперь предположим, что у вас есть базовые знания по проектированию реляционных баз данных:

  • @JoinTable описывает таблицу соединений, которая используется для хранения отношений между клиентом и обслуживанием. Каждая строка содержит одну ссылку на клиента и одну на обслуживание. Эта таблица будет называться customer_service

  • joinColumns - определение столбца (-ов), ссылающегося на вторую сторону отношения - customer_id

  • inverseJoinColumns - определение столбца (-ов), ссылающихся обратно на начальную сторону - service_id в этом примере.

Столбцы соединения и обратного соединения симметричны - если вы определяете отношение «многие ко многим» на другой стороне, вы переключаете их. В противном случае все будет работать с точки зрения Java, но Hibernate создаст внешний ключ из таблицы customer_id до Service и наоборот и вставит значения соответственно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...