Bonjour,
Après avoir bien cherché moi-même je me permets de vous présenter une action que je ne parviens pas à réaliser moi-même :
Il s'agit d'une situation classique d'une relation many to many impliquant les table user , role et user_role. Je parviens à persister user et role mais pas leur relation.
Si quelqu'un pouvait me dire où est mon erreur :
Hibernate version: hibernate-3.2.0.cr4
Mapping pour User :
Code:
......
<class name="verlina.domain.model.User" table="user">
<id name="id" column="id">
<generator class="native"/>
</id>
<property name = "login" />
<property name = "password" />
<set name="roles" table="user_role" cascade="all" lazy="false" outer-join="true">
<key column="id_user"/>
<many-to-many class="verlina.domain.model.Role" column="id_role" />
</set>
</class>
......
Mapping pour Role : Code:
....
<class name="verlina.domain.model.Role" table="role">
<id name="id" column="id">
<generator class="native"/>
</id>
<property name="name"/>
<set name="users" table="user_role" cascade="all" lazy="false" outer-join="true" inverse="true">
<key column="id_role"/>
<many-to-many class="verlina.domain.model.User" column="id_user" />
</set>
</class>
.....
Code entre sessionFactory.openSession() et session.close():Code:
User u = new User();
u.setLogin("mimi"); u.setPassword("cracra");
Role r = new Role();
r.setName("ROLE_SUPERADMIN5");
u.addRole(r);
session.save(u);
Code permettant d'ajouter un role à un user:Code:
class User{
.....
public void addRole(Role r){
getRoles().add(r);
r.getUsers().add(this);
}
.....
}
Problème:
Aucun messages d'erreur ou de warning, l'objet role ainsi que l'objet user sont bien persistés dans la base mais pas leur relation, cad que rien n'est ajouté dans la table user_role.
Si vous pouvez m'éclairer sur ce problème surement très classique ce serait vraiment cool.