Bonjour,
J'ai une entité avec deux relations oneToMany que je pose dans des List.
Ces deux relations sont en eager fetching, du coup, je veux ajouter la balise @indexcolumn pour que ce ne soit plus des bags mais bien des listes pour hibernate (voir ici)
Sauf que je ne sais pas vraiment me servir de cette balise.
Par déduction, après lecture de la doc, je me dis qu'il faut mettre le nom du champ indexé de l'entité fille comme ceci :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 @Entity class A{ @oneToMany(mappedBy = "a", fetch = FetchType.EAGER)) private List<B> bs; @oneToMany(mappedBy = "a", fetch = FetchType.EAGER)) private List<C> cs; ... }
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 @Entity class B{ @ManyToOne @JoinColumn(name = "A_ID") private A a; ... }J'aurai envie de coller des @IndexColumn(name="A_ID") pour les deux relations, or mettre le même nom empeche de faire la distinction entre les deux listes, et donc ça ne marche pas.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 @Entity class C{ @ManyToOne @JoinColumn(name = "A_ID") private A a; ... }
Sachant que je ne peux pas changer les noms des champs dans la base de donnée, comment je dois faire pour que ça marche ?
Notez que c'est probablement très bete, mais je ne vois pas la.
Donc, merci d'avance
Partager