当前位置: 代码迷 >> Java Web开发 >> org.hibernate.exception.SQLGrammarException: could not execute query有关问题求解
  详细解决方案

org.hibernate.exception.SQLGrammarException: could not execute query有关问题求解

热度:7448   发布时间:2013-02-25 21:20:25.0
org.hibernate.exception.SQLGrammarException: could not execute query问题求解
org.hibernate.exception.SQLGrammarException: could not execute query
at org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:90)
at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:66)
at org.hibernate.loader.Loader.doList(Loader.java:2235)
at org.hibernate.loader.Loader.listIgnoreQueryCache(Loader.java:2129)
at org.hibernate.loader.Loader.list(Loader.java:2124)
at org.hibernate.loader.custom.CustomLoader.list(CustomLoader.java:312)
at org.hibernate.impl.SessionImpl.listCustomQuery(SessionImpl.java:1723)
at org.hibernate.impl.AbstractSessionImpl.list(AbstractSessionImpl.java:165)
at org.hibernate.impl.SQLQueryImpl.list(SQLQueryImpl.java:175)
at sdu.HibernateUtil.HibernateUtil.findBySql(HibernateUtil.java:257)
at sdu.HibernateUtil.HibernateDASServiceImpl$2.execute(HibernateDASServiceImpl.java:144)
at sdu.HibernateUtil.HibernateTemplate.run(HibernateTemplate.java:26)
at sdu.HibernateUtil.HibernateDASServiceImpl.findBySqlDataObject(HibernateDASServiceImpl.java:133)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
。。。
使用的sql语句为:select ct.* ,cr.cust_name,se.chance_name from contract ct, customer cr, sales_chance se where ct.contract_id='234324' and cr.id=ct.cust_id and se.chance_id=ct.chance_id;
语句验证可以在oracle中执行
网上各种查了一天还是没有找到解决方法,求高手解答,如果上面信息不够可以补充其他信息,谢谢各位了

------解决方案--------------------------------------------------------
你确定在oracle中执行的sql和在程序中是一样的么?用show_sql打印出来,然后复制到oracle中执行看看
另外把全部的excetion贴出来看看,特别是caused by。。。
------解决方案--------------------------------------------------------
首先建议一下哥们你的结帖率太低了
------解决方案--------------------------------------------------------
select ct.* ,cr.cust_name,se.chance_name from contract ct, customer cr, sales_chance se where ct.contract_id='234324' and cr.id=ct.cust_id and se.chance_id=ct.chance_id;
如果是无效字符 这句话应该不会在数据库那边执行的,ct.contract_id是主键吗,去掉后面单引号试下
  相关解决方案