facebook

(newbie) help w/ simple HQL query

  1. MyEclipse Archived
  2.  > 
  3. Database Tools (DB Explorer, Hibernate, etc.)
Viewing 9 posts - 1 through 9 (of 9 total)
  • Author
    Posts
  • #234587 Reply

    rzn7z7
    Member

    I’m a newbie to hibernate and followed the Database Explorer and Hibernate tutorial to learn. I tweaked the tutorial in order to use a DB2 8.1 database and created a mapping of a table called Sdsalutn. Life was good until I used HQL to query for all instances of the Sdsalutn class from w/in my SalutationService class:

    Query query = session.createQuery(“from Sdsalutn”);

    which threw a net.sf.hibernate.exception.SQLGrammarException (stack trace below)

    I did get the following SQL-like query working so all’s not lost:

    Query query = session.createSQLQuery(“SELECT {salutn.*} FROM MYPERSN.SDSALUTN {salutn}”,”salutn”,Sdsalutn.class);

    So what’s wrong w/ this simple HQL?….config info – Windows XP, Eclipse 3.0.1, MyEclipse 3.8.4

    thnx,
    gm

    java.lang.RuntimeException: net.sf.hibernate.exception.SQLGrammarException: Could not execute query
    at com.db2.hibernate.SalutationService.getList(SalutationService.java:216)
    at org.apache.jsp.index_jsp._jspService(index_jsp.java:121)
    at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:94)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
    at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:324)
    at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:292)
    at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:236)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:237)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:157)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:214)
    at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
    at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
    at org.apache.catalina.core.StandardContextValve.invokeInternal(StandardContextValve.java:198)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:152)
    at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
    at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:137)
    at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:118)
    at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:102)
    at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
    at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
    at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
    at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:929)
    at org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:160)
    at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:799)
    at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:705)
    at org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:577)
    at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:683)
    at java.lang.Thread.run(Thread.java:536)
    Caused by: net.sf.hibernate.exception.SQLGrammarException: Could not execute query
    at net.sf.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:59)
    at net.sf.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:30)
    at net.sf.hibernate.impl.SessionImpl.convert(SessionImpl.java:4110)
    at net.sf.hibernate.impl.SessionImpl.find(SessionImpl.java:1556)
    at net.sf.hibernate.impl.QueryImpl.list(QueryImpl.java:39)
    at com.db2.hibernate.SalutationService.getList(SalutationService.java:210)
    … 31 more
    Caused by: com.ibm.db2.jcc.c.SqlException: DB2 SQL error: SQLCODE: -204, SQLSTATE: 42704, SQLERRMC: DGIMYPRS.SDSALUTN
    at com.ibm.db2.jcc.c.cw.e(cw.java:1490)
    at com.ibm.db2.jcc.c.cw.a(cw.java:1100)
    at com.ibm.db2.jcc.b.bd.h(bd.java:138)
    at com.ibm.db2.jcc.b.bd.a(bd.java:42)
    at com.ibm.db2.jcc.b.r.a(r.java:31)
    at com.ibm.db2.jcc.b.bs.g(bs.java:149)
    at com.ibm.db2.jcc.c.cw.l(cw.java:1080)
    at com.ibm.db2.jcc.c.cx.bc(cx.java:1554)
    at com.ibm.db2.jcc.c.cx.d(cx.java:1983)
    at com.ibm.db2.jcc.c.cx.T(cx.java:422)
    at com.ibm.db2.jcc.c.cx.executeQuery(cx.java:405)
    at net.sf.hibernate.impl.BatcherImpl.getResultSet(BatcherImpl.java:88)
    at net.sf.hibernate.loader.Loader.getResultSet(Loader.java:875)
    at net.sf.hibernate.loader.Loader.doQuery(Loader.java:269)
    at net.sf.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:133)
    at net.sf.hibernate.loader.Loader.doList(Loader.java:1033)
    at net.sf.hibernate.loader.Loader.list(Loader.java:1024)
    at net.sf.hibernate.hql.QueryTranslator.list(QueryTranslator.java:854)
    at net.sf.hibernate.impl.SessionImpl.find(SessionImpl.java:1553)
    … 33 more

    #234592 Reply

    Riyad Kalla
    Member

    Just use session.find(“from Sdsalutn”);

    This section is handy in the Hib docs: http://www.hibernate.org/hib_docs/reference/en/html/manipulatingdata.html#manipulatingdata-querying

    #234603 Reply

    rzn7z7
    Member

    same exception – net.sf.hibernate.exception.SQLGrammarException – same stack trace…..doesn’t like that HQL

    #234605 Reply

    Riyad Kalla
    Member

    Post the contents of your generated hbm.xml file for this class (Sdsalutn).

    #234626 Reply

    rzn7z7
    Member

    <?xml version=”1.0″?>
    <!DOCTYPE hibernate-mapping PUBLIC
    “-//Hibernate/Hibernate Mapping DTD 2.0//EN”
    http://hibernate.sourceforge.net/hibernate-mapping-2.0.dtd&#8221; >

    <!– DO NOT EDIT: This is a generated file that is synchronized –>
    <!– by MyEclipse Hibernate tool integration. –>
    <!– Created Fri Aug 05 14:00:51 EDT 2005 –>
    <hibernate-mapping package=”com.db2.hibernate”>

    <class name=”Sdsalutn” table=”SDSALUTN”>
    <id name=”cSalutn” column=”C_SALUTN” type=”java.lang.String”>
    <generator class=”native”/>
    </id>

    <property name=”xSalutn” column=”X_SALUTN” type=”java.lang.String” not-null=”true” />
    <property name=”iLogonAdd” column=”I_LOGON_ADD” type=”java.lang.String” not-null=”true” />
    <property name=”tStmpAdd” column=”T_STMP_ADD” type=”java.util.Date” not-null=”true” />
    <property name=”iLogonUpd” column=”I_LOGON_UPD” type=”java.lang.String” />
    <property name=”tStmpUpd” column=”T_STMP_UPD” type=”java.util.Date” />
    </class>

    </hibernate-mapping>

    #234634 Reply

    Riyad Kalla
    Member

    Hmm my Hibernate is rusty, what does your hibernate.cfg.xml file look like?

    #234646 Reply

    rzn7z7
    Member

    <?xml version=’1.0′ encoding=’UTF-8′?>
    <!DOCTYPE hibernate-configuration PUBLIC
    “-//Hibernate/Hibernate Configuration DTD 2.0//EN”
    http://hibernate.sourceforge.net/hibernate-configuration-2.0.dtd”&gt;

    <!– DO NOT EDIT: This is a generated file that is synchronized –>
    <!– by MyEclipse Hibernate tool integration. –>
    <hibernate-configuration>

    <session-factory>
    <!– properties –>
    <property name=”connection.username”>XXXXX</property>
    <property name=”connection.url”>jdbc:db2://cldlr25.cldc.chrysler.com:11540/asd21</property>
    <property name=”dialect”>net.sf.hibernate.dialect.DB2Dialect</property>
    <property name=”connection.password”>XXXXX</property>
    <property name=”connection.driver_class”>com.ibm.db2.jcc.DB2Driver</property>

    <!– mapping files –>
    <mapping resource=”com/db2/hibernate/Sdsalutn.hbm.xml”/>

    </session-factory>

    </hibernate-configuration>

    #234650 Reply

    Riyad Kalla
    Member

    My last suggestion is to try and fully qualify the class name in your query:
    “find com.db2.hibernate.Sdsalutn”

    if that doesn’t work, check with the hibernate forums, I’m kicking myself because I think this has to be something rediculously simple, I’m just not seeing it now.

    #234653 Reply

    rzn7z7
    Member

    i’ve already tried full package path w/ same results……i agree, it seems too simple….HQL “from <class>” is, as I understand it, like an SQL “select * from <table>”, which is about as basic as it gets, and if this doesn’t work – oy!!…….i’ll check other forums, appreciate the help

    gm

Viewing 9 posts - 1 through 9 (of 9 total)
Reply To: (newbie) help w/ simple HQL query

You must be logged in to post in the forum log in