IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Java EE Discussion :

[EJB2] Requête sur clé étrangère [EJBQL]


Sujet :

Java EE

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    54
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 54
    Par défaut [EJB2] Requête sur clé étrangère
    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.

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    54
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 54
    Par défaut
    Ca y est, j'ai pu réussir ma requête à l'aide des specs EJB2.

    La syntaxe à utiliser était la suivante (et c'est donc cette syntaxe à utiliser pr une jointure entre tables..) :

    select object(c) from categorie c, in(c.produit) l where c.prescriptionid = ?1

    où "produit" est le nom de la relation (1,n) liant la table Categorie à la table Produit.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Requête sur clé étrangère
    Par keisha dans le forum Bases de données
    Réponses: 2
    Dernier message: 22/06/2006, 18h29
  2. Requête sur un MemData
    Par claude dans le forum Bases de données
    Réponses: 5
    Dernier message: 23/12/2004, 11h11
  3. Requête sur date
    Par guenfood dans le forum Access
    Réponses: 11
    Dernier message: 08/12/2004, 17h11
  4. Requête sur un serveur lié
    Par Guizz dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 06/08/2003, 12h35
  5. requête sur l'année d'une date
    Par jo77 dans le forum Langage SQL
    Réponses: 4
    Dernier message: 30/07/2003, 10h28

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo