-->
These old forums are deprecated now and set to read-only. We are waiting for you on our new forums!
More modern, Discourse-based and with GitHub/Google/Twitter authentication built-in.

All times are UTC - 5 hours [ DST ]



Forum locked This topic is locked, you cannot edit posts or make further replies.  [ 1 post ] 
Author Message
 Post subject: Bad request
PostPosted: Tue Sep 20, 2005 7:50 am 
Newbie

Joined: Tue Sep 20, 2005 7:03 am
Posts: 2
Hibernate version: 3.0.5

Code between sessionFactory.openSession() and session.close():
Code:
   public List find(String requete, Integer first, Integer qttMax) throws ObjectException{
      System.err.println("hibernate.find("+requete+", "+first+", "+qttMax+")");
      if (isOpen()){
         List reponse = null;
         
         Session session = null;
         try{
            session = getSess();
         } catch (Throwable t){
            String message = t.getMessage();
            String exception = "Impossible de lancer la requete \n"+requete;
            if (message!=null){
               exception += "\n ("+message+")";
            }
            exception += "\n - "+t.getClass();
            throw new ObjectException(exception);
         }
         
         if (session==null){
            setOpen(false);
            String exception = "Impossible de lancer la requete \n"+requete;
            exception += "\n (session==null)";
            throw new ObjectException(exception);
         } else {
            try {
               Query query = session.createQuery(requete);
               if (first!=null){
                  query.setFirstResult(first.intValue());
               }
               if (qttMax!=null){
                  query.setMaxResults(qttMax.intValue());
               }
               reponse = query.list();
            } catch (Throwable e) {
               String message = e.getMessage();
               String exception = "Impossible de lancer la requete \n"+requete;
               if (message!=null){
                  exception += "\n("+message+")";
               }
               exception += " - "+e.getClass();
               e.printStackTrace();
               throw new ObjectException(exception);
            }
         }
         
         return reponse;
      } else {
         String exception = "Impossible de lancer la requete \n"+requete;
         exception += "\n(Connexion fermée)";
         throw new ObjectException(exception);
      }
   }


Full stack trace of any exception that occurs:
objets.objets.exceptions.ObjectException: Impossible de lancer la requete
select distinct year(dossier.dateEnvoi) from AvancementDossier dossier
(could not execute query) - class org.hibernate.exception.SQLGrammarException

org.hibernate.exception.SQLGrammarException: could not execute query
at org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:59)
at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:43)
at org.hibernate.loader.Loader.doList(Loader.java:1596)
at org.hibernate.loader.Loader.list(Loader.java:1577)
at org.hibernate.loader.hql.QueryLoader.list(QueryLoader.java:395)
at org.hibernate.hql.ast.QueryTranslatorImpl.list(QueryTranslatorImpl.java:271)
at org.hibernate.impl.SessionImpl.list(SessionImpl.java:844)
at org.hibernate.impl.QueryImpl.list(QueryImpl.java:74)
at utils.Hibernate.find(Hibernate.java:400)
at utils.Hibernate.find(Hibernate.java:345)
at test.TestHibernate.testCurrentConnection(TestHibernate.java:41)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:85)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:58)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:60)
at java.lang.reflect.Method.invoke(Method.java:391)
at junit.framework.TestCase.runTest(TestCase.java:154)
at junit.framework.TestCase.runBare(TestCase.java:127)
at junit.framework.TestResult$1.protect(TestResult.java:106)
at junit.framework.TestResult.runProtected(TestResult.java:124)
at junit.framework.TestResult.run(TestResult.java:109)
at junit.framework.TestCase.run(TestCase.java:118)
at junit.framework.TestSuite.runTest(TestSuite.java:208)
at junit.framework.TestSuite.run(TestSuite.java:203)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:436)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:311)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:192)
Caused by: java.sql.SQLException: A syntax error has occurred.
at com.informix.util.IfxErrMsg.getSQLException(IfxErrMsg.java:373)
at com.informix.jdbc.IfxSqli.a(IfxSqli.java:3208)
at com.informix.jdbc.IfxSqli.E(IfxSqli.java:3518)
at com.informix.jdbc.IfxSqli.dispatchMsg(IfxSqli.java:2353)
at com.informix.jdbc.IfxSqli.receiveMessage(IfxSqli.java:2269)
at com.informix.jdbc.IfxSqli.executePrepare(IfxSqli.java:1153)
at com.informix.jdbc.IfxPreparedStatement.e(IfxPreparedStatement.java:318)
at com.informix.jdbc.IfxPreparedStatement.a(IfxPreparedStatement.java:298)
at com.informix.jdbc.IfxPreparedStatement.<init>(IfxPreparedStatement.java(Compiled Code))
at com.informix.jdbc.IfxSqliConnect.h(IfxSqliConnect.java:5909)
at com.informix.jdbc.IfxSqliConnect.prepareStatement(IfxSqliConnect.java:1991)
at org.hibernate.jdbc.AbstractBatcher.getPreparedStatement(AbstractBatcher.java:396)
at org.hibernate.jdbc.AbstractBatcher.getPreparedStatement(AbstractBatcher.java:334)
at org.hibernate.jdbc.AbstractBatcher.prepareQueryStatement(AbstractBatcher.java:88)
at org.hibernate.loader.Loader.prepareQueryStatement(Loader.java:1162)
at org.hibernate.loader.Loader.doQuery(Loader.java:390)
at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:218)
at org.hibernate.loader.Loader.doList(Loader.java:1593)
... 24 more

Name and version of the database you are using: IBM Informix Dynamic Server Version 9.40.TC7

Informix jars ifxjdbc.jar and ifxsqlj.jar

SQL I give to Hibernate : select distinct year(dateEnvoi) from AvancementDossier

The generated SQL (show_sql=true):
select distinct extract(year from avancement0_.DATEENVOI) as col_0_0_ from teleservices.AVANCEMENTDOSSIER avancement0_

Response from Informix when I user Hibernate query : [b]
Database selected. 201: A syntax error has occurred. Error in line 1 Near character position 30 Database closed.

[b]hibernate.properties :

hibernate.dialect org.hibernate.dialect.InformixDialect
hibernate.connection.driver_class com.informix.jdbc.IfxDriver
hibernate.connection.autocommit true
hibernate.connection.isolation 2
hibernate.default_schema teleservices

I suppose I have a problem of version. When I use my query in Informix, it works. When I use hibernate query, it doesn't. Does anybody has an idea ? Thanks


Top
 Profile  
 
Display posts from previous:  Sort by  
Forum locked This topic is locked, you cannot edit posts or make further replies.  [ 1 post ] 

All times are UTC - 5 hours [ DST ]


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum

Search for:
© Copyright 2014, Red Hat Inc. All rights reserved. JBoss and Hibernate are registered trademarks and servicemarks of Red Hat, Inc.