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