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:
Operator:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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>
Le problème c'est que si j'atoute un operator (existant) à la un group (existant aussi) en faisant:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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>
Ca fonctionne parfaitement, l'operator se voit bien attribuer le groupId en DB.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 monOperator.setOperatorGroup(monGroup); monGroup.getOperators().add(monOperator); getHibernateTemplate().merge(operatorGroup); //save operatorGroup
Par contre si je fais:
Ca ne fonctionne pas, mon operator garde toujours son lien vers le group !
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 monOperator.setOperatorGroup(null); monGroup.getOperators().remove(monOperator); getHibernateTemplate().merge(operatorGroup); //save operatorGroup
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,
Partager