Bonjour,

Je souhaite faire une requête EJBQL tout simple sans succès.
Voici le modèle des entity beans concernés:

CMP Produit :
- idProduit (clé primaire)
- name
- ...
- #idCategorie (clé étrangère)

CMP Categorie :
- idCategorie (clé primaire)
- name
- label
- ...

d'où une relation (1,1 ; 1,n) puisque à une catégorie peut appartenir plusieurs produits, mais un produit ne peut appartenir qu'à une seule catégorie.

Voici ma requete qui est des plus simples :
"je veux sélectionner tous les produits dont la catégorie est fournie en paramètre (integer)".

A priori je pensais qu'il me fallait implémenter une requete du style :
"select object(o) from Produit o where p.idCategorie = ?1"

mais malheureusement ce n'est pas possible, car idCategorie n'est pas perçu comme étant un champ de la table produit, mais comme une relationship avec la table categorie.

Cette relationship porte bien un nom : pf_pres_fk. Mais la syntaxe o.pf_pres_fk n'est pas reconnue lors du déploiement du code. En effet, j'obtiens l'erreur suivante :


Deploying EJB_MISTRALS_Cmp
Deployment from com.ibm.etools.ejbdeploy.EJBDeployer had errors:

Error generating findProductsAdm(int) query for bean Product (Abstract schema name=Product).

Error=WQRY0010E: An argument type error was found in (o.pf_pres_fk = categorieid Query='select object(o) from Product o where o.pf_pres_fk = ?1'
)


Avez-vous une idée de comment réaliser ma requete? Je me demande comment peuvent etre réalisées les jointures entre tables du coup...

Merci de votre aide.

Motorenshi.