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");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) ?
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)));
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
Partager