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 :

[EJB 3][GLASSFISH] Problème EJBQL


Sujet :

JPA Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2007
    Messages : 12
    Par défaut [EJB 3][GLASSFISH] Problème EJBQL
    Bonjour,

    dans le cadre d'un développement Web sous Netbeans :
    EJB3 / JSF / Facelets / Glassfish / mysql,

    je rencontre le problème suivant lors de l'utilisation d'une méthode de récupération de données. Le résultat devrait être une collection de type List.

    Requête SQL validée par phpmyadmin :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    SELECT o.id, o.url
    FROM t_bookmarks AS o
     
    INNER JOIN t_joinusersbookmarks AS jub
    ON o.ID = jub.bookmark_id
     
    INNER JOIN t_users AS usr
    ON jub.user_id = 2
     
    GROUP BY o.id, o.url
    Extrait du code source de mon session bean avec convertion en EJBQL :
    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
        public List<Bookmarks> findByUserId(long usrid)
        {
            List<Bookmarks> usr = null;
            String querystring;
     
            querystring  = "SELECT object(o) ";
            querystring += "FROM Bookmarks AS o ";
            querystring += "INNER JOIN JoinUsersBookmarks AS jub ";
            querystring += "ON o.ID = jub.bookmark_id ";
            querystring += "INNER JOIN Users AS usr ";
            querystring += "ON jub.user_id = " + usrid + " ";
            querystring += "GROUP BY o ";
     
            try
            {
                usr = (List<Bookmarks>) em.createQuery(querystring).getResultList();
            }
            catch (javax.persistence.NoResultException en)
            {
                return usr = null;
            }
     
            return usr;
        }
    Entity class Bookmarks :
    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
     
    @Entity
    @Table(name="t_bookmarks")
    public class Bookmarks implements Serializable 
    {
        private static final long serialVersionUID = 1L;
     
        @Id
        @GeneratedValue(strategy = GenerationType.AUTO)
        private long id; // Primary key
     
        @Column(name = "url", unique = true, updatable = false, nullable = false, length = 512)
        private String url;
    (...)
    }
    Entity class Users :
    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="t_users")
    public class Users implements Serializable 
    {
        private static final long serialVersionUID = 1L;
     
        @Id
        @GeneratedValue(strategy = GenerationType.AUTO)
        private long id; // Primary key
     
        @Column(name = "login", unique = true, updatable = false, nullable = false, length = 64)
        private String login;
    (...)
    }
    Entity class JoinUsersBookmarks :
    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
     
    @Entity
    @Table(name="t_joinusersbookmarks")
    public class JoinUsersBookmarks implements Serializable 
    {
        private static final long serialVersionUID = 1L;
     
        @Id
        @GeneratedValue(strategy = GenerationType.AUTO)
        private long id; // Primary key
     
        @Column(name = "user_id")
        private long user_id; // Foreign key
     
        @Column(name = "bookmark_id")
        private long bookmark_id; // Foreign key
    (...)
    }
    Le message d'erreur est le suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    HTTP Status 500 - 
     
    root cause
     
    Exception [TOPLINK-8024] (Oracle TopLink Essentials - 2.0.1 (Build b09d-fcs (12/06/2007))): oracle.toplink.essentials.exceptions.EJBQLException
    Exception Description: Syntax error parsing the query [SELECT object(o) FROM Bookmarks as o INNER JOIN JoinUsersBookmarks as jub ON o.ID = jub.bookmark_id INNER JOIN Users as usr ON jub.user_id = 0 GROUP BY o ], line 1, column 68: syntax error at [as].
    Internal Exception: line 1:68: expecting DOT, found 'as'
     
    root cause
     
    line 1:68: expecting DOT, found 'as'
    Ce message apparait dans la page Web du navigateur lors de la demande d'affichage de la liste des bookmarks en fonction d'un utilisateur.

    Merci d'avance pour vos réponses.

  2. #2
    Membre confirmé
    Inscrit en
    Mai 2004
    Messages
    103
    Détails du profil
    Informations forums :
    Inscription : Mai 2004
    Messages : 103
    Par défaut
    D'après ton message d'erreur, c'est le "as" de ta clause INNER JOIN qui dérange.

    Après avoir fait quelques recherches, je n'en suis pas certain mais j'ai l'impression que tu n'as pas le droit d'utiliser "as" dans un INNER JOIN.

    essaye avec cette requête pour voir si ça marche :

    SELECT object(o) FROM Bookmarks as o INNER JOIN JoinUsersBookmarks ON o.ID = JoinUsersBookmarks.bookmark_id INNER JOIN Users ON JoinUsersBookmarks.user_id = 0 GROUP BY o;

Discussions similaires

  1. Application web + EJB 3 + GlassFish : tutoriels ?
    Par bard123 dans le forum Eclipse Java
    Réponses: 3
    Dernier message: 04/05/2015, 17h58
  2. Problème de test d'EJB Eclipse + GlassFish 3
    Par tchernogod dans le forum Glassfish et Payara
    Réponses: 2
    Dernier message: 25/11/2011, 10h35
  3. JMS - JORAM - GlassFish - Problème avec JNDI
    Par Moustikos dans le forum JOnAS
    Réponses: 0
    Dernier message: 08/02/2010, 19h25
  4. Client Swing <-- (EJB3) --> Glassfish | Problème de sérialisation
    Par nlsbo dans le forum Glassfish et Payara
    Réponses: 8
    Dernier message: 13/01/2009, 13h10
  5. login et logout EJB/JSF/Glassfish
    Par doblern dans le forum JSF
    Réponses: 1
    Dernier message: 20/03/2008, 09h39

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