Связь "один ко многим" с объединяющей таблицей

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

, Другими словами, это - долгосрочная косвенная стоимость и как таковой, большинство людей думает, что это не плохо.

34
задан Darrell Teague 13 March 2013 в 23:05
поделиться

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() {
        ...
    }
57
ответ дан 27 November 2019 в 16:53
поделиться
Другие вопросы по тегам:

Похожие вопросы: