Bonjour,
Dans une application, j'ai une relation 1-* entre deux entités. Voici un peu l'extait des fichies .hbm.xml :
Le "Père"
le fils :
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 <hibernate-mapping> <class name="Attestation" table="ATTESTATION" > <meta attribute="sync-DAO">false</meta> <id name="Id" type="string" column="CODEPARENT" > <list name="DetailsAttestations" inverse="true"> <key column="CODEDETAIL"/> <one-to-many class="DetailsAttestation"/> </list> </class> </hibernate-mapping>
Pratiquement, dans le code, voici ce qui se passe :
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
21
22
23
24
25 <hibernate-mapping> <class name="DetailsAttestation" table="DETAILS" > <meta attribute="sync-DAO">false</meta> <id name="Id" type="string" column="CODEDETAIL" > <generator class="assigned"/> </id> <many-to-one name="Attest" column="CODEPARENT" class="Attestation" not-null="true" > </many-to-one> </class> </hibernate-mapping>
- J'ai une fiche qui list tous les parents. Je peux utilisr un bouton pour ajouter un nouveau parent. En réalité, les données sont chargées dans un JTable.
- Dans la fiche d'un parent, j'ai un bouton pour valider les infos sur lui (le parent), des champspour ses infos et un autre JTable où sont chargées la liste des enfants
- Lorsque je charge la fiche du parent, j'instancie une session à partir d'une classe utilitaire (un singleton) prévue pour cà => la session est fermée quand la liste est recupérée et puis je charge mes données dans la table
- De même, dans la fiche parent, quand je clique sur "Ajouter un Enfant", une nouvelle session est instanciée.
- Une fois que je valide les données dans la fiche enfant, présentément, je fais deux choses :
1) persister l'enfant avec un appel à session.save
2) ajouter l'enfant dans la liste du parent (les enfants sont dans une liste comme précisés dans le fichier de mapping)
Vu que je n'utilise pas la même session, je voulais savoir si j'ai besoin de sauvegarder chaque enfant ou bien si un appel à session.save(objParent) sauvegardera en cascade les enfants. De même, je voudrai savoir si un appe à session.get(objParent) charge et instancie automatiquement tous les objets enfants.
Merci.
PS : après avoir lu la FAQ sur le sujet, j'ai lu que la méthode saveOrUpdate pouvait être utilisée pour rattacher automtiquement un objet à une autre session eteffectuer le traitement approprié. C'est bien cela?
Partager