[JPA / Hibernate] Table avec des jointures non naturelles
Bonjour,
Ja précise que nous travaillons en JPA 2 avec hibernate, donc il est possible, même si ce n'est pas souhaitable d'avoir des annotations purement hibernate.
Avec mes collègues nous avons besoin de créer une table de traduction et voici la solution que nous envisageons au niveau de la base (les noms de tables sont en gras , le nom des champs en italique :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
|
langue
id (pk)
code
libelle
a
id (pk)
b
id (pk)
traduction
nomTable(Pk)
nomChamp(Pk)
idDansLaTable(Pk)
idLangue(Pk)(FK)
texte |
Nous aurions donc des entitys nommés Traduction,Langue,A et B comme on le voit il n'y a pas de vraies références de Traduction ni vers A ni vers B.
On ne fera pas de détails sur l'objet traduction si ce n'est qu'à mon avis il ne pourra pas contenir de référence vers A ni B. Voici ce que nous aimerions avoir très schématiquement
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13
|
class A{
id
Map<Langue,Traduction> libelle
Map<Langue,Traduction> description
}
class B{
id
Map<Langue,Traduction> libelleCourt
Map<Langue,Traduction> libelleLong
Map<Langue,Traduction> autre
} |
J'ai déjà une partie de réponse pour ce qui est de la MAP on peu utiliser des
Code:
1 2 3 4
|
@MapKeyColumn
ou
@MapKeyClass |
Nous avons vu une annotation @JoinColumnsOrFormulas, mais il y a peu de documentation