У меня вопрос дизайна/программирования. Сначала я хочу спросить, хорош ли мой дизайн, и тогда я хочу знать, как это сделать.Как сделать сопоставление аннотации JoinTable
Что я хочу сделать, так это иметь страницу i18n, которая может иметь или не иметь перевода. например Страница A имеет английский & японский и Page B может иметь только английский
Это макет DB
page
----
id int
topic varchar(128)
content varchar(1024)
page_l10n
---------
id int fk
topic varchar(128)
content varchar(1024)
locale_id int fk
locale
------
id int
name varchar(8)
Чтобы выбрать, я сделать что-то вроде этого
SELECT
COALESCE (hl.topic,h.topic) , COALESCE(hl.content, h.content)
FROM page h
LEFT JOIN (page_l10n hl, `locale` l) ON (h.id=hl.id AND l.id=hl.locale_id) AND l.locale = 'ja_JP'
Так что мой вопрос, если это макет ok db (или вы, ребята, предлагаете использовать только 2 таблицы и иметь локаль как столбец в таблице страниц или другой способ сделать это?), как мне сделать свою модель (POJO)?
Я использую JPA для отображения R/O и спящего режима для соединения с БД.
Пожалуйста посоветуйте Заранее спасибо ~
JoinTable используется для отношений 1-N, где элемент может быть в нескольких коллекциях владельцев; это вряд ли «несколько необычно», оставляя таблицу элементов чистой информацией о соотношении. - Andy (DataNucleus) – DataNucleus
@ Andy - Я не уверен, что вы подразумеваете под «отношениями 1-N, где элемент может быть в нескольких коллекциях владельцев». Тот же экземпляр «Родительский» с несколькими свойствами коллекции, содержащими дочерние экземпляры?Вы говорите, что это широко используемое картографирование? Позаботьтесь о двух различных примерах реальной жизни? – ChssPly76