gpt4 book ai didi

java - Hibernate 中组合键的多对多关系

转载 作者:行者123 更新时间:2023-11-30 04:30:24 25 4
gpt4 key购买 nike

有没有办法使用@JoinTable注释,通过两个字段连接每个表?以下是示例表:

+----------------+  +----------------------------------+  +----------------+      
| example_table | | example_table_to_some_type_table | | some_type_table|
+----------------+ +----------------------------------+ +----------------+
|example_table_id| |example_table_id | |some_type_id |
|another_id | |some_type_id | |another_id |
|... | |another_id | |... |
|other columns | +----------------------------------+ |other columns |
|... | |... |
+----------------+ +----------------+

对于多对一的情况,它看起来像这样:

@ManyToOne
@JoinColumns({ @JoinColumn(name = "some_type_id",
referencedColumnName = "some_type_id",
insertable = false, updatable = false),
@JoinColumn(name = "another_id",
referencedColumnName = "another_id",
insertable = false, updatable = false) })
private SomeType someType;

但是多对多关系呢?我尝试了以下方法,但没有成功:

@ManyToMany(targetEntity = SomeType.class)
@JoinTable(name = "example_table_to_some_type_table",
joinColumns = { @JoinColumn(name = "example_table_id"),
@JoinColumn(name = "another_id") },
inverseJoinColumns = {
@JoinColumn(name = "some_type_id"),
@JoinColumn(name = "another_id") })
private Set<SomeType> someTypeSet;

我收到以下错误:

Repeated column in mapping for collection: com.package.name.Example.someTypeSet column: another_id

我应该看什么以及该映射的哪一部分不正确?提前致谢。

最佳答案

您的连接表需要 4 列。 2 个引用 example_table 的 PK 列,另外 2 个引用 some_type_table 的 PK 列。

所以它应该看起来像

+----------------+  +----------------------------------+  +----------------+      
| example_table | | example_table_to_some_type_table | | some_type_table|
+----------------+ +----------------------------------+ +----------------+
|example_table_id| |example_table_id | |some_type_id |
|another_id | |example_table_another_id | |another_id |
|... | |some_type_id | |... |
| | |some_type_table_another_id | | |
|other columns | +----------------------------------+ |other columns |
|... | |... |
+----------------+ +----------------+

关于java - Hibernate 中组合键的多对多关系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14775949/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com