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中呢?