Bonjour,

j'utilise Criteria pour effectuer une recherche multicritère.

Prenons par exemple 3 classes Client,Adresse,Telephone
Mon client correspond à plusieurs adresses et plusieurs telephones.

Le chargement de ces deux collections se fait avec lazy="false".

properties est une HashMap correspondant aux différents critères et valeurs à rechercher :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
properties.put("Prenom","Jean");
properties.put("Nom","Dupont");
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
DetachedCriteria criteria = DetachedCriteria.forClass(Client.class); 
for(String key : properties.keySet())
	if(properties.get(key) instanceof String)
		criteria.add(Restrictions.like(key, properties.get(key)));
	else
		criteria.add(Restrictions.eq(key, properties.get(key)));
Comment faire pour que je puisse avoir un critère sur un champs d'un objet d'une de ces collections (d'une de ces adresse et/ou d'un de ces telephones) ?

Exemple de requête :
Je veux les gens s'appelant "Jean" ayant une adresse à "Paris" et ayant un Telephone en 06%.

Sachant qu'un Objet adresse a une propriété Ville et Telephone a une propriété Numero.

Merci d'avance !

EDIT : En fait je ne vois pas bien la différence entre FETCH et createAlias