Hibernate Аннотация Присоединиться к вопросу таблицы - PullRequest
4 голосов
/ 19 июня 2009

При выполнении таблицы соединений с аннотацией гибернации, как добавить дополнительный столбец, который не является столбцом объединения, как, скажем, женат как слабый объект? как дополнительный столбец?

@ManyToMany(targetEntity=some.class,
        cascade ={CascadeType.PERSIST, CascadeType.MERGE}, fetch=FetchType.EAGER)
@JoinTable(name = "RELATION", joinColumns ={
        @JoinColumn(name = "HID", unique = true)
    }, inverseJoinColumns = {
        @JoinColumn(name = "FID")
})
Set<PERSON> PEOPLE = new HashSet<PERSON>(); 

1 Ответ

7 голосов
/ 21 июня 2009

Третий столбец технически делает эту таблицу сущностью, а не «таблицей соединений». Таким образом, таблица должна быть самой сущностью. Подумайте об этом с точки зрения SQL. Является ли таблица соединения просто таблицей соединения, когда в ней содержится больше, чем просто информация, необходимая для объединения двух других таблиц?

Также как FYI, этот сценарий рассматривается в главе 7 «Сохранение Java (JPA) с Hibernate»:

Вы можете использовать две общие стратегии для сопоставления такой структуры с классами Java. Первая стратегия требует промежуточного класса сущности для таблицы соединения и отображается с один ко многим ассоциациям. Вторая стратегия использует набор компонентов с классом типа значения для таблицы соединений.

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