Remplacer une relation n-1 par n-n
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:
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:
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:
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.