Bonjour à toutes et tous,
Je dois associer un utilisateur à des rôles au travers d'un objet qui vas contenir cette relation.
Mes tables (PostgreSQL) :
Code:
CREATE TABLE user (
uid SERIAL NOT NULL
);
CREATE TABLE role (
rid SERIAL NOT NULL
);
CREATE TABLE user_role (
uid INTEGER NOT NULL,
rid INTEGER NOT NULL,
-- FOREIGN KEYS ...
);
Mon objet "
Affectation" qui me sert à associer un utilisateur à un ou plusieurs rôles.
Code:
public class Affectation {
private User user;
private List<Role> roles;
// get et set..
}
Et le mapping suivant :
Code:
<class name="xx.Affectation" table="user_role">
<id column="uid" name="id">
<generator class="foreign">
<param name="property">user</param>
</generator>
</id>
<one-to-one name="user" constrained="true" />
<bag name="roles" table="user_role" lazy="false">
<key column="uid"/>
<many-to-many class="xx.Role" column="rid" unique="false"/>
</bag>
</class>
Mais les insertions ne fonctionnent pas car la requête générée n'insère que l'id de l'utilisateur et qu'il y à une contrainte "NOT NULL" sur la colonne
"user_role"."rid" :
Code:
insert into user_role (uid) values ('2')
J'ai essayé de rajouter "casacade=all" ou "casacade=save-update" ainsi que "inverse=true" mais rien ne change.
Pouvez-vous m'aider ? Merci