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

Hibernate Java Discussion :

Jointure entre deux table


Sujet :

Hibernate Java

Vue hybride

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

    Informations forums :
    Inscription : Avril 2007
    Messages : 204
    Par défaut Jointure entre deux table
    Bonjour,

    J'ai deux Tables dans une base de données je veux lancer un requête qui permet de faire la jointure entre les deux tables mais à chaque fois il me dits erreur de syntaxe,
    Voici ma requête :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select v.id from Variante as v inner join DetailVariante as dv on  dv.variante.id = v.id where v.groupeModele.id = '"+criterDao.getModel()+"'";
    cette requête n'est pas complete c'est juste un extrait je pens que l'erreur vient d'ici

    Voilà l'exception levée :
    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
    [ateliodoc] ERROR [http-8080-Processor24] ActionExceptionHandler.logException(147) | org.springframework.orm.hibernate3.HibernateQueryException: unexpected token: on near line 1, column 90 [select v.id from com.etai.atelio.doc.model.Variante as v inner join DetailVariante as dv on  dv.variante.id = v.id where v.groupeModele.id = '39' and v.id in(select v2.id from com.etai.atelio.doc.model.Variante as v2 inner join DetailVariante as dv2 on  dv2.variante.id = v2.id where v2.groupeModele.id = '39' and dv2.id.typDet = '133' and dv2.id.libDet = '1910')]; nested exception is org.hibernate.hql.ast.QuerySyntaxException: unexpected token: on near line 1, column 90 [select v.id from com.etai.atelio.doc.model.Variante as v inner join DetailVariante as dv on  dv.variante.id = v.id where v.groupeModele.id = '39' and v.id in(select v2.id from com.etai.atelio.doc.model.Variante as v2 inner join DetailVariante as dv2 on  dv2.variante.id = v2.id where v2.groupeModele.id = '39' and dv2.id.typDet = '133' and dv2.id.libDet = '1910')]
    Caused by: org.hibernate.hql.ast.QuerySyntaxException: unexpected token: on near line 1, column 90 [select v.id from com.etai.atelio.doc.model.Variante as v inner join DetailVariante as dv on  dv.variante.id = v.id where v.groupeModele.id = '39' and v.id in(select v2.id from com.etai.atelio.doc.model.Variante as v2 inner join DetailVariante as dv2 on  dv2.variante.id = v2.id where v2.groupeModele.id = '39' and dv2.id.typDet = '133' and dv2.id.libDet = '1910')]
    	at org.hibernate.hql.ast.QuerySyntaxException.convert(QuerySyntaxException.java:31)
    	at org.hibernate.hql.ast.QuerySyntaxException.convert(QuerySyntaxException.java:24)
    	at org.hibernate.hql.ast.ErrorCounter.throwQueryException(ErrorCounter.java:59)
    	at org.hibernate.hql.ast.QueryTranslatorImpl.parse(QueryTranslatorImpl.java:258)
    	at org.hibernate.hql.ast.QueryTranslatorImpl.doCompile(QueryTranslatorImpl.java:157)
    	at org.hibernate.hql.ast.QueryTranslatorImpl.compile(QueryTranslatorImpl.java:111)
    	at org.hibernate.engine.query.HQLQueryPlan.<init>(HQLQueryPlan.java:77)
    	at org.hibernate.engine.query.HQLQueryPlan.<init>(HQLQueryPlan.java:56)
    	at org.hibernate.engine.query.QueryPlanCache.getHQLQueryPlan(QueryPlanCache.java:72)
    	at org.hibernate.impl.AbstractSessionImpl.getHQLQueryPlan(AbstractSessionImpl.java:133)
    	at org.hibernate.impl.AbstractSessionImpl.createQuery(AbstractSessionImpl.java:112)
    	at org.hibernate.impl.SessionImpl.createQuery(SessionImpl.java:1623)
    	at sun.reflect.GeneratedMethodAccessor160.invoke(Unknown Source)
    	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    	at java.lang.reflect.Method.invoke(Method.java:585)
    	at org.springframework.orm.hibernate3.HibernateTemplate$CloseSuppressingInvocationHandler.invoke(HibernateTemplate.java:1192)
    	at $Proxy41.createQuery(Unknown Source)
    	at com.etai.atelio.doc.ident.dao.impl.UpdaterCritersDaoImpl$3.doInHibernate(UpdaterCritersDaoImpl.java:116)
    	at org.springframework.orm.hibernate3.HibernateTemplate.execute(HibernateTemplate.java:362)
    	at org.springframework.orm.hibernate3.HibernateTemplate.execute(HibernateTemplate.java:328)
    	at com.etai.atelio.doc.ident.dao.impl.UpdaterCritersDaoImpl.getVarianteWithSecondeCriter(UpdaterCritersDaoImpl.java:114)
    	at com.etai.atelio.doc.ident.dao.impl.UpdaterCritersDaoImpl.getVariantesWithCriter(UpdaterCritersDaoImpl.java:25)
    	at com.etai.atelio.doc.ident.service.impl.InitSearchAndFilterFieldsImpl.searchByCriter(InitSearchAndFilterFieldsImpl.java:147)
    	at com.etai.atelio.doc.webapp.ident.action.PostSearchIdentAction.searchBycriter(PostSearchIdentAction.java:133)
    	at com.etai.atelio.doc.webapp.ident.action.PostSearchIdentAction.execute(PostSearchIdentAction.java:80)
    	at org.springframework.web.struts.DelegatingActionProxy.execute(DelegatingActionProxy.java:106)
    	at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:431)
    	at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:236)
    	at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1196)
    	at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:432)
    	at javax.servlet.http.HttpServlet.service(HttpServlet.java:710)
    	at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
    	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269)
    	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
    	at com.opensymphony.module.sitemesh.filter.PageFilter.parsePage(PageFilter.java:118)
    	at com.opensymphony.module.sitemesh.filter.PageFilter.doFilter(PageFilter.java:52)
    	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain

  2. #2
    Membre Expert
    Profil pro
    Inscrit en
    Août 2006
    Messages
    3 276
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 3 276
    Par défaut
    Je pense à vue de nez que ton inner join n'est pas bien fait.
    Je te conseille de lire les exemples de la doc.

  3. #3
    Modérateur
    Avatar de OButterlin
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    7 313
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 313
    Billets dans le blog
    1
    Par défaut
    En HQL, tu ne peux pas utiliser la forme
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    select ... from tableA a inner join tableB b on a.cle = b.cle
    Il faut utiliser le "where"

    Tant qu'à faire, utilise les paramètres également, quelque chose comme ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Query query = session.createQuery("select a from tableA a join tableB b where a.cle = b.cle and a.colonne1 = :value1");
    query.setParameter("value1", "maValeur");
    A+
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    100
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 100
    Par défaut
    Pourquoi pas utiliser fetch ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    select ... from tableA a inner join fetch tableB b

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

Discussions similaires

  1. Jointure entre deux tables ?
    Par spirit69 dans le forum Access
    Réponses: 2
    Dernier message: 05/12/2006, 20h21
  2. jointure entre deux tables mysql
    Par Invité dans le forum SQL Procédural
    Réponses: 7
    Dernier message: 23/04/2006, 20h08
  3. [MySQL] Jointure entre deux tables
    Par Flushovsky dans le forum PHP & Base de données
    Réponses: 5
    Dernier message: 03/10/2005, 18h55
  4. PROBLEME DE JOINTURE ENTRE DEUX TABLE
    Par DarkMax dans le forum Langage SQL
    Réponses: 13
    Dernier message: 13/01/2005, 15h11
  5. Jointure entre deux tables et résultat
    Par Asdorve dans le forum Langage SQL
    Réponses: 2
    Dernier message: 02/06/2004, 14h50

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