Bonjour,

Je suis nouveau dans ce domaine, j'utilise hibernate pour la 1er fois, et j'ai du mal à m'en sortir de ce problème.

J'ai une table T_1 qui a une relation avec elle même et T_2 c'est l'association de cette table.

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
 
T_1
Id   |   Nom    |   ...
A    | enfant1  |   ...
B    | enfant2  |   ...
C    | enfant3  |   ...
D    | pere     |   ...
E    | mere     |   ...
 
T_2
 
parent_ID | enfant_ID
D         | A
D         | B
D         | C
Mon code avant était:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
 
@Audited(withModifiedFlag=true)
@Entity
@SecondaryTable(name = "T_2")
public class T_2 {
    @Audited(targetAuditMode=RelationTargetAuditMode.NOT_AUDITED)
    @ManyToOne(fetch=FetchType.EAGER)
    @JoinColumns(
        @JoinColumn(name = "parendt_id", referencedColumnName = "enfant_id", table="T_2")
    )
    protected Person p;
...
}
Mais au lieu de la relation plusieurs enfant appartiennent à un parent, maintenant c'est plusieurs enfant appartiennent à plusieurs parent, du coup voici mon nouveau code:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
 
@NotAudited
@ManyToMany(fetch = FetchType.EAGER)
@JoinTable(name = "T_2", joinColumns = {
        @JoinColumn(name = "parent_id", nullable = false, updatable = false) }, inverseJoinColumns = {
                @JoinColumn(name = "enfant_id", nullable = false, updatable = false) })
protected Set<Person> p;
...
}
J'ai remplacé manytoone par manytomany, mais le problème c'est qu'on j'inserts des éléments, la valeur parent_id s'enregistre dans la colonne enfant_id et vice-versa, j'ai changer les noms de collonnes au niveau de joincolumn mais maintenant il me lance l'exception Missing column parent_id dans la table T_1.

Avez-vous une idée comment résoudre ce problème?

Merci d'avance.