【发布时间】:2018-03-29 10:09:59
【问题描述】:
在 JPA 中,实体的字段是否可能同时具有 @ManyToMany 和 @ManyToOne 注释?
这是我的桌子:
Table1
- String id (pk)
- ...
Table2
- ...
- String object_id (fk Table1.id)
Table3
- ...
- String object_id (fk Table1.id)
这是我的实体(简体 ofc):
Entity1 {
private Entity1PrimaryKey pk;
}
Entity2 {
private Entity1 entity1;
}
Entity3 {
private Entity1 entity1;
}
我会尽力解释:
@ManyToOne:Entity2 和 Entity3 都有一个引用 Entity1 的字段。所以有一个多对一的关系。
-
@ManyToMany :在 JPA 查询中,我需要加入 Entity2 和 Entity3。这是 SQL 中的查询:
选择 fieldFromTable2, fieldFromTable3 从表 2 INNER JOIN Table3 ON Table2.object_id = Table3.object_id;
因此,我认为我必须使用@ManyToMany。但我遇到了一些错误。
所以我想知道:是否可以将@ManyToMany 和@ManyToOne 放在实体的同一字段上?
【问题讨论】:
-
没有。就是不行。完全没有意义。关系只有一种类型
-
在(
Entity1和Entity2)之间或(Entity1和Entity3)之间没有@ManyToOne,因为Entity2对象引用了一个且只有一个@ 987654329@ 对象,Entity3也是如此 ..