Salut à tous,

je débute en hibernate (plus exactement nhibernate) et je tombe sur une difficulté sur laquelle je n'ai pas réussi à trouver d'information.

Cela concerne une gestion de droit d'une application, avec des roles affectés à des utilisateurs. Mon schéma de base est le suivant:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
 
CREATE TABLE trole (
  id_role  NUMBER(38,0) NOT NULL,
  nom VARCHAR2(60) NOT NULL
)
 
CREATE TABLE tdroit (
  id_droit       NUMBER(38,0) NOT NULL,
  nom            VARCHAR2(60) NOT NULL,
  typedroit      NUMBER(11,0) NOT NULL
)
 
CREATE TABLE trole_droit (
  id_role_droit NUMBER(38,0) NOT NULL,
  id_role       NUMBER(38,0) NOT NULL,
  id_droit      NUMBER(38,0) NOT NULL,
  niveau_droit  NUMBER(11,0) NOT NULL
)
et mon schéma objet est le suivant:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
 
public class Role 
{
	public int id_role {get;set;}
	public string Nom {get;set;}
	public List<NiveauDroit> Droits {get;set;}
}
 
public class Droit
{
	public int id_droit {get;set;}
	public string Nom {get;set;}
	public TypeDroit TypeDroit {get;set;}
}
 
public class NiveauDroit : Droit
{
	public TypeNiveauDroit	NiveauDroit{get;set;}
}
Je n'arrive pas à comprendre comment déclarer mon mapping pour qu'il me crée dans mon Role la liste de droits avec les niveaux associés. Principalement comment lui indiquer que la table trole_droit n'est qu'une "passerelle" avec d'autres identifiants.

Vous auriez des idées ou des suggestion quant-au mapping ou au schéma objet ?