Bonjour,
Je cherche comment utiliser Criteria avec JOIN WITH
Par exemple, on a les tables
Recette
- int id_r num
- String nom
- int sucreSaleAcide
- int id_ingredients
et
Ingredients
- int id_i num
- String nom_ingredient
- int stock
- Set Recettes //collection hibernate des liaisons retour
La requête doit être sur Ingredients.
et je veux écrire ce qui donnerait en HQL :
avec :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 SELECT i.nom_ingredient, r.nom FROM Ingredients i LEFT OUTER JOIN Recette r WITH r.sucreeSaleAcide > :value
En Criteria, ça devrait donner :
Code : Sélectionner tout - Visualiser dans une fenêtre à part :value = 10
Mais évidemment ça marche pas... quelqu'un pourrait me montrer le chemin ?
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 Criteria crit = session.createCriteria(Ingredients.class); //crit.setFetchMode("ingredients", FetchMode.JOIN); //crit.add(Restrictions.gt("r.sucreeSaleAcide", 2)); crit.createAlias("recettes", "r"); //crit.createCriteria("recettes").add(Restrictions.eq("r.sucreeSaleAcide", 2)); crit.add(Restrictions.gt("r.sucreeSaleAcide", 2)); //crit.setResultTransformer(Criteria.DISTINCT_ROOT_ENTITY); //http://www.developpez.net/forums/showthread.php?t=310869 List list = crit.list();
merci !
Partager