j'ai un problème de persistance de ma classe, je m'explique j'ai une classe Utilisateur qui peut appartenir à +ieurs groupes, la classe utilisateur hérite de la classe Personne et la classe Groupe hérite de la classe Typedico voici les fichiers de mapping
voici le mapping de la classe Personne et Utilisateur
Voici le mapping de la classe Groupe et Typedico
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
26
27 ... <hibernate-mapping package="com.myapp.exploreoffre.javabeans"> <class name="Personne" table="personne" dynamic-update="true" dynamic-insert="true"> <id name="personneid" column="personneid" unsaved-value="0"> <generator class="sequence"> <param name="sequence">serie</param> </generator> </id> <property name="personneid" column="personneid" insert="false" update="false"/> ... <joined-subclass name="Utilisateur" table="utilisateur"> <key column ="personneid"/> <property name="utilisateurid" column="utilisateurid" insert="false" update="false"/> <property name="initiale" column="initiale"/> <many-to-one name="authentification" class="Authentification" column="authentificationid" unique="true" cascade="all"/> <set name="clients" table="clients" cascade="all"> <key column="utilisateurid"/> <many-to-many column="clientid" class="Client"/> </set> <set name="groupes" table="groupes" cascade="all"> <key column="utilisateurid"/> <many-to-many column="groupeid" class="Groupe"/> </set> </joined-subclass> </class> </hibernate-mapping>
voici la méthode qui permet de sauvegarder les objets dans la BD
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 <hibernate-mapping package="com.myapp.exploreoffre.javabeans" default-lazy="true"> <class name="Typedico" table="typedico" dynamic-update="true" dynamic-insert="true"> <id name="typedicoid" column="typedicoid" unsaved-value="0"> <generator class="sequence"> <param name="sequence">serie</param> </generator> </id> <property name="typedicoid" column="typedicoid" insert="false" update="false"/> ... <joined-subclass name="Groupe" table="groupe"> <key column="typedicoid"/> <property name="groupeid" column="groupeid" insert="false" update="false"/> <property name="typedico" column="typedico" type="boolean"/> </joined-subclass>
la méthode de la classe Action qui utilise ces méthodes
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 public void insert(Object in) throws Exception { Session session = HibernateUtil.getSession(); HibernateUtil.beginTransaction(); session.saveOrUpdate(in); HibernateUtil.commitTransaction(); } public List list(Object in) throws Exception { Session session = HibernateUtil.getSession(); HibernateUtil.beginTransaction(); Criteria criteria = session.createCriteria(in.getClass()); return criteria.list(); }
voici la sortie de Hibernate
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 BeanUtils.copyProperties(utilisateur, fillform.getUtilisateur()); BeanUtils.copyProperties(utilisateur.getAuthentification(), fillform.getUtilisateur().getAuthentification()); for (int dI = 0; dI < fillform.getIdentifiants().length; dI++) { groupe = (Groupe) new HibernateDAO().find(new Groupe(), new Integer(fillform.getIdentifiants(dI))); utilisateur.getGroupes().add(groupe); } new HibernateDAO().insert(utilisateur); form.reset(mapping, request); return mapping.findForward("utilisateur");
visiblement les groupes séléctionnés dans la jsp sont chargés par Hibernate mais ne sont pas insérés dans la BD. quelqu'un à t-il une explication Merci.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 Hibernate: /* insert com.myapp.exploreoffre.javabeans.Utilisateur */ insert into personne (nom, prenom, email, telephone, fax, gsm, personneid) values (?, ?, ?, ?, ?, ?, ?) Hibernate: /* insert com.myapp.exploreoffre.javabeans.Utilisateur */ insert into utilisateur (initiale, authentificationid, personneid) values (?, ?, ?) Hibernate: /* update com.myapp.exploreoffre.javabeans.Authentification */ update authentification set identifiant=?, password=? where authentificationid=? Hibernate: /* load com.myapp.exploreoffre.javabeans.Groupe */ select groupe0_.typedicoid as typedicoid6_0_, groupe0_1_.nom as nom6_0_, groupe0_1_.commentaire as commenta3_6_0_, groupe0_.groupeid as groupeid15_0_, groupe0_.typedico as typedico15_0_ from groupe groupe0_ inner join typedico groupe0_1_ on groupe0_.typedicoid=groupe0_1_.typedicoid where groupe0_.typedicoid=? Hibernate: /* load com.myapp.exploreoffre.javabeans.Groupe */ select groupe0_.typedicoid as typedicoid6_0_, groupe0_1_.nom as nom6_0_, groupe0_1_.commentaire as commenta3_6_0_, groupe0_.groupeid as groupeid15_0_, groupe0_.typedico as typedico15_0_ from groupe groupe0_ inner join typedico groupe0_1_ on groupe0_.typedicoid=groupe0_1_.typedicoid where groupe0_.typedicoid=?
Partager