Bonjour

Je fais, depuis deux semaines, mes débuts dans le Web dev sous J2EE, et ce, avec l'aide de struts2, spring2 et hibernate 3.
J'ai créé une classe Categorie telle que définie :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
@Entity
@Table(name = "CATEGORIE")
public class Categorie extends AbstractModelObject implements Serializable {
 
	@Id
	@Column(name = "ID_CAT")
	private int idCat;
	@Column(name = "NAME_CAT")
	private String nameBloc;
	@JoinColumn(name = "ID_PROD", referencedColumnName = "ID_PROD")
	private Produit produit;
 
	...
}
et j'ai créé une classe Prduit telle que :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
@Entity
@Table(name = "PRODUIT")
public class Produit extends AbstractModelObject implements Serializable {
 
	@Id
	@Column(name = "ID_PROD")
	private int idProd;
	@Column(name = "NAME_PROD")
	private String nameProd;
	@Column(name = "SITE")
	private String site;
 
	...
}
Donc, une catégorie, se trouve à l'intérieur d'un produit qui se trouve, à son tour, dans un site (ville).
Il peut y avoir des produits avec le même nom sur un même site.
J'aimerai faire une requête pour sélectionner les catégories dont le site du produit dont elle dépend est spécifié (Par exemple, les catégories faisant partie des produits se trouvant à Paris).

J'ai essayé de faire ceci :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
public List<Categorie> findBySite(String site) {
		Query query = this.em.createQuery("from Categorie WHERE site = "+site+" order by NAME_CAT");
		return query.getResultList();
}
Cependant, ça ne fonctionne pas. Hibernate me dit qu'il ne connait pas "site".

Comment puis-je faire ?

Merci

@++