Таблица соединения JPA, созданная с использованием первичных ключей вместо внешних ключей - PullRequest
0 голосов
/ 10 июля 2020

Что ж, у меня однонаправленная связь OneToMany между TeamEntity и ContestTypeEntity.

Итак, в моем TeamEntity у меня есть следующее:

@OneToMany(targetEntity = ContestTypeEntity.class)
@JoinTable(name="team_contest_type")
private Set<ContestTypeEntity> contestTypes = new HashSet<>();

ContestTypeEntity doesn ' не знаю об отношении.

Обычно JPA должна генерировать таблицу соединения team_contest_type с двумя внешними ключами: team_entity_id и contest_types_id.

Но в фактически созданной таблице соединения это первичные ключи, поэтому я не могу вставлять неуникальные значения ... И это то, что я хочу сделать. Как я могу это исправить?

Ответы [ 2 ]

0 голосов
/ 10 июля 2020

Хорошо, поэтому связь ManyToMany с Set с обеих сторон решила мою проблему.

0 голосов
/ 10 июля 2020

Используйте @ JoinColumn вместо @ JoinTable . И помните, что при работе с JPA / Hibernate / ORM вы работаете со ссылками на объекты, а не с ключами таблиц. Это может помочь вам не использовать однонаправленный с OneToMany: https://thorben-janssen.com/best-practices-many-one-one-many-associations-mappings/#Don8217t_use_unidirectional_one -to-many_associations

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