【发布时间】:2020-07-10 22:15:33
【问题描述】:
我在 TeamEntity 和 ContestTypeEntity 之间有一个 OneToMany 单向关系。
所以在我的TeamEntity 我有以下内容:
@OneToMany(targetEntity = ContestTypeEntity.class)
@JoinTable(name="team_contest_type")
private Set<ContestTypeEntity> contestTypes = new HashSet<>();
ContestTypeEntity 不知道这种关系。
通常,JPA 应该生成一个带有两个外键的连接表 team_contest_type:team_entity_id 和 contest_types_id。
但在实际生成的连接表中,这些是主键,所以我无法插入非唯一值......这就是我想要做的。 我该如何解决这个问题?
【问题讨论】:
-
您想在可连接中插入非唯一值? jpa自动使用主键作为连接表的外键
-
连接表的目的是提供唯一的对
(team_entity_id, contest_types_id)。你为什么要“解决”这个问题? -
Team可以关联多个ContestType,ContestType可以有多个Team;所以结果将是非唯一的对。我不知道该怎么做^^'
-
对总是唯一的,例如 (1,1),(1,2),(2,1) 都可以,但 (1,1) 又不行。似乎多对多关系使用@ManyToMany
-
我想要像 (1,1), (1,2), (2,1), (2,2) 这样的配对。对将是唯一的,但 id 可以多次使用
标签: java jpa spring-data-jpa