Bonjour,
Je tiens d'abord à préciser que je suis newbie en matière d'Hibernate.
Je cherche à deleter une relation many-to-many et uniquement cette relation. Les entités ne doivent pas être supprimé.
J'ai donc dans l'EntityA un set de EntityB et dans l'EntityB un set de EntityA.
J'ai trouvé comment deleter uniquement la relation dans la table d'association mais je passe pas par des propriétés de mapping.
En clair je fais ce type de modification
Code:
public class EntityB {
...
public void removeEntityA(EntityA entityA) {
this.getEntityA().remove(entityA);
entityA.getEntityB().remove(this);
}
public void addEntityA(EntityA entityA) {
this.getEntityA().add(entityA);
entityA.getEntityB().add(this);
}
}
public class EntityA {
...
public void removeEntityB(EntityB entityB) {
this.getEntityB().remove(entityB);
entityB.getEntityA().remove(this);
}
public void addEntityB(EntityB entityB) {
this.getEntityB().add(entityB);
entityB.getEntityA().add(this);
}
}
Je trouve cela pas forcément propre pour effectuer un delete d'une association many-to-many.
Si je passe pas des cascade (all ou delete-all-orphan), je supprime l'entityA ou B suivant le sens du delete.
Est-ce que quelqu'un aurait une idée pour faire une suppression plus propre d'une relation many-to-many ?
Est-ce que la manière décrite plus haut est correct en Hibernate 3 ?
Merci d'avance