Типичная таблица для одного T1 для многих T2 должна иметь внешний ключ на T2, направленный к T1. Таблица T1_T2 обычно не нужна.
Структура JPA тогда была бы «Один-ко-многим», возможно, с двух сторон.
Возможно, есть договоренности, чтобы описать структуру, которую вы описываете. Вы можете изменить T1_T2:
- добавить уникальное ограничение на Т2 (так что только одна T2 разрешено)
Это действительно то, что вы хотите?
Отредактировано: да, это то, что вы хотите ;-)
Я сомневаюсь, что вы можете найти много примеров на сети. У меня нет доказанного решения, но я бы попробовал что-то в этом направлении:
В Hibernate annotation reference documentation, см. «2.2.5.3.2.3. Однонаправленный с помощью таблицы соединений», чтобы получить эту идею. Это выглядит следующим образом:
@Entity
public class Trainer {
@OneToMany
@JoinTable(
name="TrainedMonkeys",
joinColumns = @JoinColumn(name="trainer_id"),
inverseJoinColumns = @JoinColumn(name="monkey_id")
)
public Set<Monkey> getTrainedMonkeys() {
...
}
Я думаю, что вы можете найти то, что вы ищете в https://en.wikibooks.org/wiki/Java_Persistence/OneToMany#Example_of_a_OneToMany_using_a_JoinTable_database – Legna