Bonjour à tous.
J'ai déjà posté sur ce problème, mais je vais reformuler ici d'une manière plus compréhensible, car je suis sur que ce problème est facilement explicable.
Supposons que j'ai une table SQL T_PERSONNE et une table T_VOITURE .
Une personne peut avoir plusieurs voitures, une voiture ne peut appartenir qu'à une seule personne. Voila pour le schéma relationnel.
En Hibernate ça va donner un truc comme ça : (personne.hbm.xml)
Dans un service, j'ai une méthode :
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
16
17
18
19
20 <set name="voitures" lazy="true" inverse="true" cascade="none" sort="unsorted" order-by="voiture_id asc" > <key > <column name="voiture_id" /> </key> <one-to-many class="fr.Voiture" />
qui est définie comme ceci dans le fichier de contexte spring :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 getPersonne(PersonneId id);
Je met un break point avec Eclipse en plein milieu de la méthode getPersonne.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2<prop key="get*">PROPAGATION_REQUIRED,readOnly</prop>
De sorte qu'une transaction a été démarrée, en mode readOnly.
Avec un client MySQL, je fais un UPDATE sur une voiture appartenant à la personne que je suis en train de récupérer via mon Service, ensuite je déroule mon break point.
Pourquoi, à la fin de ma méthode, et donc quand la transaction se termine, je vois passer un :
UPDATE T_VOITURE SET BLABLA... ?????????
Voila, si vous avez des remarques/explications, elles seront les bienvenues !
Merci.
Partager