J'essaie de mapper certaines tables existantes avec Hibernate.Hibernate: mappage 3 tables
C'est assez simple: nous avons des catégories qui ont des noms dans plusieurs langues.
ddl est comme suit:
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)
);
Maintenant, je voudrais avoir une carte avec la langue comme il est et la description (tableau category_description) comme sa valeur, comme ceci:
private Map<Language, CategoryDescription> descriptions = new HashMap<Language, CategoryDescription>();
Quelqu'un peut-il me fournir quelques indications à ce sujet? J'ai essayé l'exemple comme indiqué à la page 311/312 de 'Java Persistence with Hibernate' qui ressemble à mon problème mais je ne comprends pas :(
Salut, Merci beaucoup pour la réponse. Nous avons travaillé autour d'elle d'une manière que je n'aime pas mais j'essaierai certainement ceci dehors. Vous avez raison à propos de l'incohérence DDL; J'ai essayé de "simplifier" un peu les choses mais de toute évidence manqué quelque chose. À cet égard, la description de la catégorie a également été simplifiée, avec quelques attributs supplémentaires. Nous avons la même configuration à 3 tables pour d'autres entités (beaucoup de nos entités ont des descriptions multilingues qui sont conçues de la même manière) Je posterai de nouveau dès que je trouverai le temps d'essayer votre solution. Merci. – user90209