Я пытаюсь сопоставить некоторые существующие таблицы с Hibernate.Hibernate: отображение 3 таблиц
Это довольно просто: у нас есть категории с именами на нескольких языках.
DDL выглядит следующим образом:
create table language (
id integer not null auto_increment,
code varchar(2) not null,
unique (code),
primary key(id)
);
create table category (
id integer not null auto_increment,
parent_id integer default null,
ordr integer not null default 99,
primary key (id)
);
create table category_description (
category_id integer not null,
language_id integer not null,
title varchar(255) not null,
constraint foreign key (category_id) references category(id),
constraint foreign key (country_language_id) references country_language(id),
primary key (category_id, country_language_id)
);
Теперь я хотел бы иметь карту с языка, как это ключ и описание (таблица category_description), как это значение, например:
private Map<Language, CategoryDescription> descriptions = new HashMap<Language, CategoryDescription>();
Может ли кто-нибудь предоставить мне некоторые указатели на это? Я пробовал пример, приведенный на странице 311/312, из «Java Persistence with Hibernate», который похож на мою проблему, но я просто не получаю его :(
Привет, Большое спасибо за ответ. Мы работали вокруг этого так, как мне не нравится, но я обязательно попробую это. Вы правы относительно несоответствия DDL; Я попытался немного «упростить» вещи, но, очевидно, что-то пропустил. В этом отношении категория CategoryDescription также была упрощена, она имеет еще несколько атрибутов. У нас есть одна и та же установка из трех таблиц для других объектов (многие из наших сущностей имеют многоязычные описания, которые разработаны аналогичным образом. Я отправлю сообщение, как только найду время, чтобы попробовать ваше решение. Спасибо. – user90209