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) :
1 2 3 4 5 6 7 8 9 10 11
| 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.
1 2 3 4 5 6
| public class Affectation {
private User user;
private List<Role> roles;
// get et set..
} |
Et le mapping suivant :
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| <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" :
insert into user_role (uid) values ('2')
J'ai essaué de rajouter "casacade=all" ou "casacade=save-update" ainsi que "inverse=true" mais rien ne change.
Pouvez-vous m'aider ? Merci
Partager