我在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
。
但在实际生成的联接表中,这些都是主键,所以我不能插入非唯一值。。。这就是我想要做的。我该怎么解决这个问题?
使用@JoinColumn而不是@JoinTable。请记住,当使用JPA/Hibernate/ORM时,您使用的是对象引用,而不是表键。这可以帮助您不要将单向与OneToMany一起使用:https://thorben-janssen.com/best-practices-many-one-one-many-associations-mappings/#Don8217t_use_unidirectional_one-多人关联
好的,所以两边都有一个集的ManyToMany关系解决了我的问题。