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 :

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
avec :
En Criteria, ça devrait donner :
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();
Mais évidemment ça marche pas... quelqu'un pourrait me montrer le chemin ?

merci !