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

Glassfish et Payara Java Discussion :

Jointure avec EJB-QL(NET BEANS5)


Sujet :

Glassfish et Payara Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Mai 2007
    Messages
    17
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 17
    Par défaut Jointure avec EJB-QL(NET BEANS5)
    Bonjour,
    J'ai un petit problème au niveau de ejb-ql.Je ne sais pas comment faire une jointure avec ejb-ql.
    Je vous explique :
    j'ai deux tables dans une même base
    table region(id_region(clé),libelle_region,id_zone(clé étrangère);
    table zone(id_zone(clé),lib_zone);
    Le requêtte SQL que je veut connaitre l'equivalence en EJB-QL est
    SELECT id_region,libelle_region,lib_zone FROM region,zone where region.id_zone=zone.id_zone.


    Merci bien

    Cordialement,
    heriniain_a1

  2. #2
    Inactif  
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    2 189
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2006
    Messages : 2 189
    Par défaut
    Tu ne peux je pense car ejb-ql te retourne une liste d un certain type

  3. #3
    Membre éprouvé
    Avatar de Valère
    Profil pro
    Inscrit en
    Août 2005
    Messages
    1 334
    Détails du profil
    Informations personnelles :
    Âge : 50
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Août 2005
    Messages : 1 334
    Par défaut
    Si, c'est possible, il faut que tu créés un objet wrapper qui contient les champs que tu souhaites récupérer:

    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
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    /*
     * Resultat.java
     *
     * Created on 6 juin 2007, 09:47
     *
     * To change this template, choose Tools | Template Manager
     * and open the template in the editor.
     */
     
    package javaapplication1;
     
    /**
     *
     * @author Propriétaire
     */
    public class Resultat {
     
        private int id_region;
        private String libelle_region;
        private String lib_zone;
     
        /**
         * Creates a new instance of Resultat
         */
        public Resultat(int id_region, String libelle_region, String lib_zone) {
            this.id_region = id_region;
            this.libelle_region = libelle_region;
            this.lib_zone = lib_zone;
     
        }
     
        public int getId_region() {
            return id_region;
        }
     
        public void setId_region(int id_region) {
            this.id_region = id_region;
        }
     
        public String getLibelle_region() {
            return libelle_region;
        }
     
        public void setLibelle_region(String libelle_region) {
            this.libelle_region = libelle_region;
        }
     
        public String getLib_zone() {
            return lib_zone;
        }
     
        public void setLib_zone(String lib_zone) {
            this.lib_zone = lib_zone;
        }
     
    }
    Ensuite tu créés ta requête EJB-QL comme suit:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT new javaapplication1.Resultat(r.id_region, r.libelle_region, z.lib_zone) FROM  Region r, Zone z WHERE r.id_zone=z.id_zone
    (ou quelque chose comme ça, je n'ai pas mes exemples sous la main).

    Valère

  4. #4
    Membre averti
    Inscrit en
    Décembre 2005
    Messages
    37
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 37
    Par défaut
    Bonjour,

    Cette question m'intéresse; les réponses aussi.

    si j'ai bien compris valered, il faut créer un nouveau type d'objet contenant la réponse à envoyer au client?

  5. #5
    Membre averti
    Inscrit en
    Décembre 2005
    Messages
    37
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 37
    Par défaut
    .. et c'est possible avec des NamedQueries??

  6. #6
    Membre confirmé
    Inscrit en
    Septembre 2008
    Messages
    77
    Détails du profil
    Informations forums :
    Inscription : Septembre 2008
    Messages : 77
    Par défaut
    Citation Envoyé par heriniain_a1 Voir le message
    j'ai deux tables dans une même base
    table region(id_region(clé),libelle_region,id_zone(clé étrangère);
    table zone(id_zone(clé),lib_zone);

    Le requêtte SQL que je veut connaitre l'equivalence en EJB-QL est
    SELECT id_region,libelle_region,lib_zone FROM region,zone where region.id_zone=zone.id_zone.
    Je n'est pas essayé ça mais ce tuto explique un peu l'affaire. Il a travaillé avec deux entité :photo et retouche et ça a donné :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT photo.identification , retouche.contraste 
    FROM Photo AS photo , Retouche AS retouche 
    WHERE photo.retouche.id = retouche.id
    Normalement, dans ton exemple ça doit etre comme ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT region.id_region , region.libelle_region, zone.lib_zone 
    FROM Region AS region , Zone AS zone 
    WHERE region.zone.id_zone = zone.id_zone
    Dites le moi si je me trompe.

  7. #7
    Membre éclairé Avatar de snipes
    Inscrit en
    Septembre 2004
    Messages
    547
    Détails du profil
    Informations forums :
    Inscription : Septembre 2004
    Messages : 547
    Par défaut
    Salut,
    je suis interessé par ce post, estce que quelqu'un peut me dire si on est obligé de creer une nouvelle classe (non entité) pour pouvoir recuperer ce resultat ?

  8. #8
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    168
    Détails du profil
    Informations personnelles :
    Localisation : Cameroun

    Informations forums :
    Inscription : Avril 2009
    Messages : 168
    Par défaut reponse
    oui on est obligé de creer une nouvelle classe avec comme attributs les champs utilisés dans la requete sql.

    Une autre solution serait de creer une vue dans ta base de donnees puis de l'importer dans ton projet grace a ton IDE(netbeans,eclipse..).

Discussions similaires

  1. EJB QL jointure avec 2 bases?
    Par chakala dans le forum JPA
    Réponses: 5
    Dernier message: 10/04/2007, 17h02
  2. probleme de link avec visual studio .net 2003
    Par kamal101 dans le forum MFC
    Réponses: 9
    Dernier message: 28/03/2005, 21h44
  3. Probleme d'utilisation de directX 9 avec visual studio.net
    Par cranedoeuf dans le forum DirectX
    Réponses: 1
    Dernier message: 24/05/2004, 04h33
  4. [SAGE]Jointures avec SGBD
    Par mat.M dans le forum Autres SGBD
    Réponses: 4
    Dernier message: 09/10/2003, 12h23
  5. [EJB2.1 Entity] [BES] CreateException avec ejb.CacheCreate=true
    Par Bobby McGee dans le forum Java EE
    Réponses: 6
    Dernier message: 08/10/2003, 17h11

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