【发布时间】:2015-08-15 05:38:01
【问题描述】:
JPA 和 ORM 的新问题,所以这个问题可能已经过时了。我有以下表格:
CREATE TABLE INSTITUTION (
inst_id BIGINT PRIMARY KEY,
:
:
);
和
CREATE TABLE PERSON (
pers_id BIGINT PRIMARY KEY,
:
:
);
上述每个表都与另一个表 CONTACTINFO 是一对多的关系
CREATE TABLE CONTACTINFO (
cont_id BIGINT PRIMARY KEY,
:
:
);
在 RDBMS 表中,关系可以映射到两个连接表:
JOIN_CONTACTS_PERSON ( cont_id, pers_id )
JOIN_CONTACTS_INSTITUTION ( cont_id, inst_id )
在 SQL 中,可以通过使用正确的连接表连接所需的表来建立关系,例如:
SELECT *
FROM Person AS p
JOIN Join_Contacts_Person AS jt ON p.pers_id = jt.pers_id
JOIN Contacts AS c ON jt.cont_id = c.cont_id;
在 JPA 中,一对多关系的拥有方必须是“多”方,在本例中为联系人表。但似乎没有任何方法可以使用 JPA 注释从“多”端映射到多个联接表。
我的问题是:1)不可能通过多个连接表映射双向多对一关联吗? ... 2)是否也不能通过两个或多个连接表映射单向多对一关系? ...和... 3) 可能的解决方法是对两个单向映射使用@ManyToMany 注释并使“一个”侧成为每个关系的拥有侧?
【问题讨论】:
标签: java jpa orm one-to-many jointable