错误:org.hibernate.exception.SQLGrammarException: could not execute query

tyzy_douglas 2007-03-13 04:14:50
错误信息如下:
javax.servlet.ServletException: could not execute query
org.apache.struts.action.RequestProcessor.processException(RequestProcessor.java:545)
org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:486)
org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:274)
org.apache.struts.action.ActionServlet.process(ActionServlet.java:1482)
org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:525)
javax.servlet.http.HttpServlet.service(HttpServlet.java:709)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
photo.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:63)


root cause

org.hibernate.exception.SQLGrammarException: could not execute query
org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:67)
org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:43)
org.hibernate.loader.Loader.doList(Loader.java:2148)
org.hibernate.loader.Loader.listIgnoreQueryCache(Loader.java:2029)
org.hibernate.loader.Loader.list(Loader.java:2024)
org.hibernate.loader.hql.QueryLoader.list(QueryLoader.java:375)
org.hibernate.hql.ast.QueryTranslatorImpl.list(QueryTranslatorImpl.java:308)
org.hibernate.engine.query.HQLQueryPlan.performList(HQLQueryPlan.java:153)
org.hibernate.impl.SessionImpl.list(SessionImpl.java:1106)
org.hibernate.impl.QueryImpl.list(QueryImpl.java:79)
reg.dao.ClientinfoDAO.findClientInfo(ClientinfoDAO.java:89)
reg.Reg.getClientInfo(Reg.java:127)
reg.Reg.addClientInfo(Reg.java:33)
reg.action.ClientInfoAction.execute(ClientInfoAction.java:41)
org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:484)
org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:274)
org.apache.struts.action.ActionServlet.process(ActionServlet.java:1482)
org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:525)
javax.servlet.http.HttpServlet.service(HttpServlet.java:709)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
photo.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:63)


相关方法
public List findClientInfo(Object cname,Object level){
List l=new ArrayList();
try {

String queryString = "from Clientinfo model where model.cname=? and model.level=?";
System.out.println(queryString);
Query queryObject = getSession().createQuery(queryString);
queryObject.setParameter(0, cname);
queryObject.setParameter(1, level);
l=queryObject.list();

} catch (RuntimeException re) {
log.error("find by property name failed", re);
System.out.println(re.getMessage());
throw re;
}
return l;
}
执行到l=queryObject.list();的时候出的错

Clientinfo.hbm.xml

<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<!--
Mapping file autogenerated by MyEclipse - Hibernate Tools
-->
<hibernate-mapping>
<class name="reg.dao.Clientinfo" table="CLIENTINFO" schema="QRBBS">
<id name="clentid" type="java.lang.Long">
<column name="CLENTID" precision="13" scale="0" />
<generator class="sequence">
<param name="sequence">seq_photo</param>
</generator>
</id>
<property name="cname" type="java.lang.String">
<column name="CNAME" length="200" not-null="true" />
</property>
<property name="pid" type="java.lang.Long">
<column name="PID" precision="13" scale="0" not-null="true" />
</property>
<property name="cid" type="java.lang.Long">
<column name="CID" precision="13" scale="0" not-null="true" />
</property>
<property name="level" type="java.lang.Long">
<column name="LEVEL" precision="10" scale="0" not-null="true" />
</property>
</class>
</hibernate-mapping>


Clientinfo.java
package reg.dao;

public class Clientinfo implements java.io.Serializable {

private Long clentid;
private String cname;
private Long pid;
private Long cid;
private Long level;

/** default constructor */
public Clientinfo() {
}

/** full constructor */
public Clientinfo(String cname, Long pid, Long cid, Long level) {
this.cname = cname;
this.pid = pid;
this.cid = cid;
this.level = level;
}

public Long getClentid() {
return this.clentid;
}

public void setClentid(Long clentid) {
this.clentid = clentid;
}

public String getCname() {
return this.cname;
}

public void setCname(String cname) {
this.cname = cname;
}

public Long getPid() {
return this.pid;
}

public void setPid(Long pid) {
this.pid = pid;
}

public Long getCid() {
return this.cid;
}

public void setCid(Long cid) {
this.cid = cid;
}

public Long getLevel() {
return this.level;
}

public void setLevel(Long level) {
this.level = level;
}
}
请各位老大帮帮忙吧,拜托啦
...全文
29005 18 打赏 收藏 转发到动态 举报
写回复
用AI写文章
18 条回复
切换为时间正序
请发表友善的回复…
发表回复
依米星灿 2012-07-10
  • 打赏
  • 举报
回复
额遇到这种错误了,不过以上楼主说的都检查了,不是以上问题!!!
org.hibernate.exception.SQLGrammarException: could not execute query
falcon165 2011-12-17
  • 打赏
  • 举报
回复
设置成true后hibernate执行时的sql会打印在控制台中。
falcon165 2011-12-17
  • 打赏
  • 举报
回复
<prop key="hibernate.show_sql">true</prop>
把你的hibernate配置这个值设成true,打开看看你的sql,一般这种情况是你的sql写错了。
cpp_lzth 2011-10-26
  • 打赏
  • 举报
回复
严重: StandardWrapper.Throwable
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)

imySky_ 2011-10-26
  • 打赏
  • 举报
回复
我也遇到了这样的问题呀,求高手现身说法
wamjdg 2011-08-11
  • 打赏
  • 举报
回复
我也遇到了这样的问题 求高手解决。
codinghom 2011-07-19
  • 打赏
  • 举报
回复
我也一样… 用自己的数据库就没问题 用服务器的数据库就出现这样的问题。。。
求教啊~~~
yayalyn 2011-04-15
  • 打赏
  • 举报
回复
你把hibernate 表映射文件中 schema= "QRBBS " 这个去掉,试一下.
fly_cool 2011-04-01
  • 打赏
  • 举报
回复
我都快无语了,昨天找了一天,还是没有结果,有人说配置不对,有人说hql有问题,有人让我用级联,真是屡试都不爽啊
carry882 2010-06-01
  • 打赏
  • 举报
回复
刚才遇到错误已经搞定了,原来是数据库中没有这张表...吓
crazylaa 2010-06-01
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 liuyangabcd 的回复:]

queryObject.setParameter(0, cname);
queryObject.setParameter(1, level);
是不是从0开始啊??
[/Quote]d
xuexijava 2010-06-01
  • 打赏
  • 举报
回复
mark...........
weipj007 2010-06-01
  • 打赏
  • 举报
回复
hql语句换成
String queryString = "from Clientinfo model where model.cname='"+cname+"' and model.level='"+level+"' ";

试试。
liuyangabcd 2010-06-01
  • 打赏
  • 举报
回复
queryObject.setParameter(0, cname);
queryObject.setParameter(1, level);
是不是从0开始啊??
carry882 2010-06-01
  • 打赏
  • 举报
回复
同样遇到这种错误...
  • 打赏
  • 举报
回复
我也同样的问题啊
tyzy_douglas 2007-03-13
  • 打赏
  • 举报
回复
表结构和拼写都检查了,没什么问题,我都是用eclipse生成的,应该不会出什么错的.
imA 2007-03-13
  • 打赏
  • 举报
回复
sql语法错误,检查你的hibernate配置和你的数据表结构是否正确。

应该是你的配置和你数据表结构不一样,好好检查拼写

81,092

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧