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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
 
@MapKeyColumn
ou
@MapKeyClass
Nous avons vu une annotation @JoinColumnsOrFormulas, mais il y a peu de documentation