兄弟姐妹们都快来帮帮忙把!!!(在线等待)

jaycn_zhou 2008-06-17 06:45:21
org.hibernate.hql.ast.QuerySyntaxError: expecting "set", found 't' near line 1, column 13 [update Test t set t.sname=?,t.saddress=?,t.sage=?,t.semail=? where t.sid=?]
at org.hibernate.hql.ast.ErrorCounter.throwQueryException(ErrorCounter.java:63)
at org.hibernate.hql.ast.QueryTranslatorImpl.parse(QueryTranslatorImpl.java:215)
at org.hibernate.hql.ast.QueryTranslatorImpl.doCompile(QueryTranslatorImpl.java:127)
at org.hibernate.hql.ast.QueryTranslatorImpl.compile(QueryTranslatorImpl.java:83)
at org.hibernate.impl.SessionFactoryImpl.getQuery(SessionFactoryImpl.java:427)
at org.hibernate.impl.SessionImpl.getQueries(SessionImpl.java:884)
at org.hibernate.impl.SessionImpl.executeUpdate(SessionImpl.java:865)
at org.hibernate.impl.QueryImpl.executeUpdate(QueryImpl.java:89)
at com.runboo.dao.hibernate.mainHibernateDAO.Update(mainHibernateDAO.java:137)
at com.runboo.web.action.action.UpdateAction.execute(UpdateAction.java:55)
at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:419)
at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:224)
at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1194)
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:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at com.runboo.filter.CharactorEncodingFilter.doFilter(CharactorEncodingFilter.java:25)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:230)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:104)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:261)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:581)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
at java.lang.Thread.run(Thread.java:595)
Caused by: line 1:13: expecting "set", found 't'
at antlr.Parser.match(Parser.java:211)
at org.hibernate.hql.antlr.HqlBaseParser.setClause(HqlBaseParser.java:337)
at org.hibernate.hql.antlr.HqlBaseParser.updateStatement(HqlBaseParser.java:183)
at org.hibernate.hql.antlr.HqlBaseParser.statement(HqlBaseParser.java:133)
at org.hibernate.hql.ast.QueryTranslatorImpl.parse(QueryTranslatorImpl.java:209)
... 29 more
为什么我的Update语句总是不执行,并且有这样的异常;
...全文
188 32 打赏 收藏 转发到动态 举报
写回复
用AI写文章
32 条回复
切换为时间正序
请发表友善的回复…
发表回复
prominentli 2008-06-23
  • 打赏
  • 举报
回复
update后的表名 不要用别名,set的时候也直接用属性 不要用 别名.属性, 如果是几张表关联,在from 的地方+别名,但是set 后面不能用别名
yami251139 2008-06-23
  • 打赏
  • 举报
回复
[Quote=引用 29 楼 miaoliujun 的回复:]
不管是HQL还是SQL都是不对的
update database-name set...
[/Quote]
你这hql真是。。。。
session.update(对象)
应该是Test把
下面直接
对象点setxxx
================
你写的那是sql
就不要createquery了。。。
================
你用了hibernate的执行方法
写的却是sql。。。。
(@#*(#@(*%(@)……%()@#%
miaoliujun 2008-06-23
  • 打赏
  • 举报
回复
不管是HQL还是SQL都是不对的
update database-name set...

nec_8899 2008-06-23
  • 打赏
  • 举报
回复
KingNE 2008-06-20
  • 打赏
  • 举报
回复
lz 就是HQL写错了。
qq278095755 2008-06-20
  • 打赏
  • 举报
回复
关于update,delete的HQL语句不要加别名.
lizejia01 2008-06-20
  • 打赏
  • 举报
回复
HQL语句不对吧, set后面.....
hailang43 2008-06-20
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 jdlsfl 的回复:]
SQL codeupdate Test set sname=?,saddress=?,sage=?,semail=? where sid=?
[/Quote]
eeight 2008-06-20
  • 打赏
  • 举报
回复
HQL语句错误,看下怎么写的
TRMeister 2008-06-18
  • 打赏
  • 举报
回复
lz 就是HQL写错了。
hye4 2008-06-18
  • 打赏
  • 举报
回复
最好给个代码,便以帮楼主分析问题
dryZeng 2008-06-18
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 simpledong 的回复:]
update Test AS t set t.sname=?,t.saddress=?,t.sage=?,t.semail=? where t.sid=?
[/Quote]

8楼说得对
不就是差个as 吗
AshEmissary 2008-06-18
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 jdlsfl 的回复:]
SQL codeupdateTestsetsname=?,saddress=?,sage=?,semail=?wheresid=?
[/Quote]
zidasine 2008-06-18
  • 打赏
  • 举报
回复
HQL语句错误,看下怎么写的
jaycn_zhou 2008-06-18
  • 打赏
  • 举报
回复
public boolean Update(Test t){
boolean flag=false;
try {
System.out.println("sname:"+t.getSname());
System.out.println("saddress:"+t.getSaddress());
System.out.println("sage:"+t.getSage());
System.out.println("semail:"+t.getSemail());
System.out.println("sid:"+t.getSid());
session=sef.openSession();
Transaction tran=session.beginTransaction();
String hql="update Test set sname=?,saddress=?,sage=?,semail=? where sid=?";
Query q=session.createQuery(hql);
q.setString(0,t.getSname());
q.setString(1,t.getSaddress());
q.setLong(2,new Long(t.getSage()));
q.setString(3,t.getSemail());
q.setLong(4,new Long(t.getSid()));
q.executeUpdate();
tran.commit();
session.close();
} catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
}finally{

}
return flag;
}

这一段是代码
zhj92lxs 2008-06-17
  • 打赏
  • 举报
回复
update Test set sname=?,saddress=?,sage=?,semail=? where sid=?

不要使用别名
simpledong 2008-06-17
  • 打赏
  • 举报
回复
update Test AS t set t.sname=?,t.saddress=?,t.sage=?,t.semail=? where t.sid=?
simpledong 2008-06-17
  • 打赏
  • 举报
回复
update Test AS t set t.sname=?,t.saddress=?,t.sage=?,t.semail=? where t.sid=?
mifree 2008-06-17
  • 打赏
  • 举报
回复

HQL语句中的类名后面不要加别名试试.
jdlsfl 2008-06-17
  • 打赏
  • 举报
回复
update Test set sname=?,saddress=?,sage=?,semail=? where sid=?
加载更多回复(4)

67,538

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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