Salut,
Je commence à utiliser hibernate, j'arrive bien à utiliser les relations many-to-many mais je bloque sur une relation one-to-many.
Je veux créer deux tables : ROLE <--> USER
Un role a plusieurs utilisateurs et un utilisateur a un seul rôle.
Voici mes deux fichiers hibernate :
Role.hbm.xml :
Users.hbm.xml :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 <hibernate-mapping> <class name="cwkmanagerpojo.Role" table="ROLE"> <id name="id" column="ROLE_ID"> <generator class="native"/> </id> <property name="role"/> <set name="myusers" table="USERS" cascade="all" > <key column="urole"/> <one-to-many class="cwkmanagerpojo.Users"/> </set> </class> </hibernate-mapping>
Le code java :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 <hibernate-mapping> <class name="cwkmanagerpojo.Users" table="USERS"> <id name="id" column="USERS_ID"> <generator class="native"/> </id> <property name="login"/> <property name="password"/> <property name="urole"/> </class> </hibernate-mapping>
J'ai bien réussi a créer séparément le role et l'utilisateur mais ensuite je n'arrive pas à créer le lien entre les deux, le champs urole de l'utilisateur qui correspond à son role ne prend pas la valeur ROLE_ID du ROLE.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 Users user = (Users) session.load(Users.class, userId); Role studentRole = (Role) session.load(Role.class, roleId); studentRole.getMyusers().add(user); session.getTransaction().commit();
Si quelqu'un a une idée, merci d'avance.
Partager