Bonjour tout le monde

ma question est simple . d'une façon général

On dispose d'une
Table "A" avec deux champ a1 et a2
Table "B" avec deux champ b1 et b2
Table "C" avec deux champ c1 et c3

la table A est liée C avec a1 et c1
et la Table B est liée C avec b1 et c2

modélisation de mon problème en réalité c'est :
A = User : a1 idUser et a2 loginUser
B= Roles : b1 idRole et b2 NomRole
C= UserRole : c1:idUser et c2:idRole

exemple : je voudrais récuperer tous les utilisateurs qui ont le Role "administrateur". comment faire

voila un bout de code mais malheureusement il ne fait pas le filtre . j'ai toute la liste des utilisateurs

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
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
public ArrayList<UserBean> getEquipmentWithCriter(Map<String, Object> filter) {
		Criteria crt=null;
		try{
			UserBean userBean = new UserBean();	
			if(filter.get("login")!=null){
			userBean.setLogin(filter.get("login").toString());
			}
                       //-1 veut dire non sélectionné 
			if(!filter.get("roles").toString().equals("-1")){
				RoleBean rb= new RoleBean();
				rb.setRoleName((filter.get("roles").toString()));
				Set <RoleBean>roles= new HashSet<RoleBean>(); 
				roles.add(rb);
 
 
				System.out.println("============ Test Role ======================");
				for (RoleBean r: roles)
					System.out.println("valeur du Set Role "+r.getRoleName());				
				System.out.println("============ Fin Test Role ===================");
 
 
				userBean.setRoles(roles);
			}
 
			Example example = Example.create(userBean)
			.excludeProperty("userId")
			.ignoreCase()
			.enableLike(MatchMode.ANYWHERE);
			 crt = session.createCriteria(UserBean.class)
			 .add(example);
 
			session.clear();
 
		}catch (Exception e) {
			Log4jUtils.getInstance().logError(UserDAO.class,"Erreur lors de l'execution du filter "+e.getMessage());
		}
 
		return (ArrayList<UserBean>) crt.list();
	}