0
现在,我在使用Hibernate映射链接表时遇到问题。映射链接表与休眠状态下的3个PK
首先,我想解释我想要映射的内容: 我有3个表格:Product,DocumentType,Language。
一个产品可以在每个DocumentType(目前,我们有7个DocumentTypes)在每个特定语言(目前我们有3种语言)这意味着产品的“1”可以有DocumentType“A”,在语言
“EN”,“ES”和“FR”。
我用3个外键创建了一个链接表,它们也是复合主键。
这是我的SQL看起来像。
CREATE TABLE Person(
id int PRIMARY KEY AUTO_INCREMENT,
name varchar(255)
);
CREATE TABLE DocumentType(
id int PRIMARY KEY AUTO_INCREMENT,
name varchar(255),
key varchar(255)
);
CREATE TABLE Language(
id int PRIMARY KEY AUTO_INCREMENT,
name varchar(255),
code varchar(2)
);
CREATE TABLE Person_DocumentType_Language(
person_id int NOT NULL,
doc_id int NOT NULL,
lang_id NOT NULL,
FOREIGN KEY(person_id)
REFERENCES Person(id),
FOREIGN KEY(doc_id)
REFERENCES DocumentType(id),
FOREIGN KEY(lang_id)
REFERENCES Language(id),
PRIMARY KEY(person_id, doc_id, lang_id)
);
通过最后一个链接表,我可以知道哪个Person具有哪些DocumentTypes以及哪些语言。 我最感兴趣的是DocumentType具有哪个语言的人。
说我是人A.现在我想知道哪些DocumentTypes与哪些语言。在SQL它看起来像这样我认为:
Select doc_id, lang_id from Person_DocumentType_Language where person_id=1
这有道理吗?我怎么能把这个映射到Hibernate中呢?