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

JPA Java Discussion :

probleme d'une requete de jointure (JPA QL)


Sujet :

JPA Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Avril 2008
    Messages
    139
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 139
    Par défaut probleme d'une requete de jointure (JPA QL)
    salut,
    j'ai une table facture dont l'un de sea attributs est le nom de fournisseur ,
    cet attribut est un foreign key de la table fournisseur
    j'ai créé une requete pour la selection des factures d'un meme founisseur, voila:
    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
    16
    17
    18
    19
    20
    21
     
    public List<Facture> getFactrech() {
            if (factures == null) {
                factures = getFactrech(false);
            }
            return factures;
        }
     
        public List<Facture> getFactrech(boolean all) {
            EntityManager em = getEntityManager();
            try {
                Query q = em.createQuery("select f from Facture f where Facture.nomFourn=:r").setParameter("r",r);
                if (!all) {
                    q.setMaxResults(batchSize);
                    q.setFirstResult(getFirstItem());
                }
                return q.getResultList();
            } finally {
                em.close();
            }
        }
    sachant que "r" est un string déclaré et c'est lui qui va prendre la valeur de l'inputext au niveau de la page jsp (nom du fournisseur qu'on voulait visualiser ses factures)


    mais il parait la requete ne s'écrit pas de cette façon, voila le message d'erreur;
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    javax.el.ELException: java.lang.IllegalArgumentException: An exception occured while creating a query in EntityManager
    est ce que quelqu'un peut m'aider à corriger cette requete
    merci.

  2. #2
    Membre Expert
    Homme Profil pro
    Inscrit en
    Septembre 2006
    Messages
    2 963
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2006
    Messages : 2 963
    Par défaut
    Citation Envoyé par chflb Voir le message
    salut,
    j'ai une table facture dont l'un de sea attributs est le nom de fournisseur ,
    cet attribut est un foreign key de la table fournisseur
    j'ai créé une requete pour la selection des factures d'un meme founisseur, voila:
    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
    16
    17
    18
    19
    20
    21
     
    public List<Facture> getFactrech() {
            if (factures == null) {
                factures = getFactrech(false);
            }
            return factures;
        }
     
        public List<Facture> getFactrech(boolean all) {
            EntityManager em = getEntityManager();
            try {
                Query q = em.createQuery("select f from Facture f where Facture.nomFourn=:r").setParameter("r",r);
                if (!all) {
                    q.setMaxResults(batchSize);
                    q.setFirstResult(getFirstItem());
                }
                return q.getResultList();
            } finally {
                em.close();
            }
        }
    sachant que "r" est un string déclaré et c'est lui qui va prendre la valeur de l'inputext au niveau de la page jsp (nom du fournisseur qu'on voulait visualiser ses factures)


    mais il parait la requete ne s'écrit pas de cette façon, voila le message d'erreur;
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    javax.el.ELException: java.lang.IllegalArgumentException: An exception occured while creating a query in EntityManager
    est ce que quelqu'un peut m'aider à corriger cette requete
    merci.
    les champs dans le where doivent être référencés par l'alias déclaré dans le select…

    Facture.nomFourn -> f.nomFourn

  3. #3
    Membre confirmé
    Inscrit en
    Avril 2008
    Messages
    139
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 139
    Par défaut
    merci pour votre solution , je crois que ça avance,
    mais voici le nouveau message d'erreur;
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    java.lang.IllegalArgumentException: You have attempted to set a value of type class java.lang.String for parameter r with expected type of class package1.Fournisseur from query string select f from Facture f where f.nomFourn=:r

  4. #4
    Membre averti

    Profil pro
    Inscrit en
    Août 2005
    Messages
    39
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 39
    Par défaut
    Attention, on travaille sur des objets, pas sur du sql ordinaire.

    "select f from Facture f where f.nomFourn=:r"
    veut dire "Donne moi toutes les factures dont le fournisseur est égale à r".
    Si l'attribut nomFourn dans Facture est de type Fournisseur alors r doit être un objet de type Fournisseur.

    Quel est le type de nomFourn dans Facture ?

Discussions similaires

  1. probleme avec une requete JPA
    Par snetechen dans le forum JPA
    Réponses: 7
    Dernier message: 20/02/2010, 07h45
  2. probleme avec une requete JPA
    Par snetechen dans le forum JPA
    Réponses: 0
    Dernier message: 22/12/2009, 21h53
  3. [weblogic 8.1][JDBC] Probleme avec une requete
    Par Sniper37 dans le forum Weblogic
    Réponses: 3
    Dernier message: 08/04/2005, 11h11
  4. probleme avec une requete full text
    Par maxxou dans le forum Langage SQL
    Réponses: 2
    Dernier message: 07/03/2005, 17h20
  5. au secour probleme avec une requete...
    Par soufiane59 dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 26/09/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