Relation Many-to-one: enlever de la relation non sauvé
Bonjour à tous,
J'ai un petit problème (de configuration ?) sur Hibernate. Je m'explique:
J'ai une table 'Operator' et une table 'OperatorGroup', un operator étant dans un ou aucun group et un group pouvant évidement contenir plusieurs operators.
Voici la config hibernate:
OperatorGroup:
Code:
1 2 3 4 5 6 7 8
|
<class name="OperatorGroup" table="OperatorGroup">
...
<set name="operators" cascade="all" lazy="true" inverse="true">
<key column="operatorGroupId"/>
<one-to-many class="Operator"/>
</set>
</class> |
Operator:
Code:
1 2 3 4 5 6
|
<class name="Operator" table="Operator">
<many-to-one name="operatorGroup" insert="true" update="true" not-null="false" class="eu.bluepimento.mcl.vom.model.OperatorGroup" lazy="proxy" cascade="none">
<column name="operatorGroupId"/>
</many-to-one>
</class> |
Le problème c'est que si j'atoute un operator (existant) à la un group (existant aussi) en faisant:
Code:
1 2 3 4 5
|
monOperator.setOperatorGroup(monGroup);
monGroup.getOperators().add(monOperator);
getHibernateTemplate().merge(operatorGroup);
//save operatorGroup |
Ca fonctionne parfaitement, l'operator se voit bien attribuer le groupId en DB.
Par contre si je fais:
Code:
1 2 3 4 5
|
monOperator.setOperatorGroup(null);
monGroup.getOperators().remove(monOperator);
getHibernateTemplate().merge(operatorGroup);
//save operatorGroup |
Ca ne fonctionne pas, mon operator garde toujours son lien vers le group !
Si j'enlève l'inverse="true" dans OperatorGroup ça fonctionne, mais est-ce normal ?
Je ne veux evidement pas m'amuser à sauver les operators en plus du group.
Merci d'avance,