Ответ 1
Типичная таблица для одного T1 ко многим T2 должна иметь внешний ключ на T2, указывающий на T1. Таблица T1_T2 обычно не требуется.
Структура JPA будет тогда "одно-ко-многим", возможно, двухсторонним.
Могут быть некоторые меры, чтобы структура, которую вы описываете, работала. Вы можете изменить T1_T2:
- добавить уникальное ограничение на T2 (так что допускается только один T2)
Это действительно то, что вы хотите?
Отредактировано: да, это то, что вы хотите; -)
Я сомневаюсь, что вы можете найти множество примеров в сети. У меня нет доказанного решения, но я бы попробовал что-то в этом направлении:
В справочная документация аннотации Hibernate, см. "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() {
...
}