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 :
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>
Users.hbm.xml :
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>
Le code java :
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();
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.

Si quelqu'un a une idée, merci d'avance.