сейчас у меня проблемы с отображением таблицы связей с Hibernate.
Прежде всего я хочу объяснить, что я хочу отобразить: у меня есть 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. Теперь я хочу знать, какие типы документов у меня есть, с какими языками.Я думаю, что в SQL это будет выглядеть так:
Select doc_id, lang_id from Person_DocumentType_Language where person_id=1
Имеет ли это смысл?И как я могу отобразить это в Hibernate?