HibernateUtil hibera=new HibernateUtil();
Session session=hibera.currentSession();
Transaction tx=session.beginTransaction();
String id =(String) request.getParameter("plane_id");
String sql="delete Plane p where p.id=id ";
Query query = session.createQuery(sql);
query.executeUpdate();
tx.commit();
执行后报
hibernate.QueryException: query must begin with SELECT or FROM: delete [delete ems.hibernate.Plane p where p.id=id ]
at org.hibernate.hql.classic.ClauseParser.token(ClauseParser.java:83)
at org.hibernate.hql.classic.PreprocessingParser.token(PreprocessingParser.java:108)
at org.hibernate.hql.classic.ParserHelper.parse(ParserHelper.java:28)
at org.hibernate.hql.classic.QueryTranslatorImpl.compile(QueryTranslatorImpl.java:191)
at org.hibernate.hql.classic.QueryTranslatorImpl.compile(QueryTranslatorImpl.java:167)
at org.hibernate.engine.query.HQLQueryPlan.(HQLQueryPlan.java:75)
at org.hibernate.engine.query.HQLQueryPlan.(HQLQueryPlan.java:54)
at org.hibernate.engine.query.QueryPlanCache.getHQLQueryPlan(QueryPlanCache.java:71)
at org.hibernate.impl.AbstractSessionImpl.getHQLQueryPlan(AbstractSessionImpl.java:133)
at org.hibernate.impl.AbstractSessionImpl.createQuery(AbstractSessionImpl.java:112)
at org.hibernate.impl.SessionImpl.createQuery(SessionImpl.java:1583)
at ems.struts.DeletePlaneAction.execute(DeletePlaneAction.java:25)
at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:421)
at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:226)
at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1164)
at org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:397)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:740)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at weblogic.servlet.internal.ServletStubImpl$ServletInvocationAction.run(ServletStubImpl.java:1072)
at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:465)
at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:348)
at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:6981)
at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:121)
at weblogic.servlet.internal.WebAppServletContext.invokeServlet(WebAppServletContext.java:3892)
at weblogic.servlet.internal.ServletRequestImpl.execute(ServletRequestImpl.java:2766)
at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:224)
at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:183)
Session session=hibera.currentSession();
Transaction tx=session.beginTransaction();
String id =(String) request.getParameter("plane_id");
String sql="delete Plane p where p.id=id ";
Query query = session.createQuery(sql);
query.executeUpdate();
tx.commit();
执行后报
hibernate.QueryException: query must begin with SELECT or FROM: delete [delete ems.hibernate.Plane p where p.id=id ]
at org.hibernate.hql.classic.ClauseParser.token(ClauseParser.java:83)
at org.hibernate.hql.classic.PreprocessingParser.token(PreprocessingParser.java:108)
at org.hibernate.hql.classic.ParserHelper.parse(ParserHelper.java:28)
at org.hibernate.hql.classic.QueryTranslatorImpl.compile(QueryTranslatorImpl.java:191)
at org.hibernate.hql.classic.QueryTranslatorImpl.compile(QueryTranslatorImpl.java:167)
at org.hibernate.engine.query.HQLQueryPlan.(HQLQueryPlan.java:75)
at org.hibernate.engine.query.HQLQueryPlan.(HQLQueryPlan.java:54)
at org.hibernate.engine.query.QueryPlanCache.getHQLQueryPlan(QueryPlanCache.java:71)
at org.hibernate.impl.AbstractSessionImpl.getHQLQueryPlan(AbstractSessionImpl.java:133)
at org.hibernate.impl.AbstractSessionImpl.createQuery(AbstractSessionImpl.java:112)
at org.hibernate.impl.SessionImpl.createQuery(SessionImpl.java:1583)
at ems.struts.DeletePlaneAction.execute(DeletePlaneAction.java:25)
at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:421)
at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:226)
at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1164)
at org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:397)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:740)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at weblogic.servlet.internal.ServletStubImpl$ServletInvocationAction.run(ServletStubImpl.java:1072)
at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:465)
at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:348)
at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:6981)
at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:121)
at weblogic.servlet.internal.WebAppServletContext.invokeServlet(WebAppServletContext.java:3892)
at weblogic.servlet.internal.ServletRequestImpl.execute(ServletRequestImpl.java:2766)
at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:224)
at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:183)
解决方案 »
- java多线程问题求教
- HQL问题,请教大家
- 求助,如何将web页面得到的请求以每秒一条的速度转发到另一页面
- 如何配置才能程序每执行一次,log4j就从头刷新配置日志文件
- 各位达人,想请你们试一下下面的这个sql语句,它在mysql中竟然通过了!
- 弹出窗口的问题,谢谢
- response.encodeURL()这个函数是干什么用的,怎么用?给分。
- 怎么在类中编写循环接收参数的代码
- 同一个页面多次调用数据库连接BEAN的问题~~
- 国内速度很快!!最新电子书下载!认证资料、Bible、工具更新主要Java 、Jsp及Cisco~!http://scjp.myrice.com
- jspsmartupload中文名保存时名字乱码
- 一个crystal report的问题,按导出此报表按钮出现JAVASCRIPT错误
应该为:
String id =(String) request.getParameter("plane_id");
String sql="delete Plane p where p.id=:id ";
Query query = session.createQuery(sql);
query.setString("id",id);
query.executeUpdate();
Session session=hibera.currentSession();
Transaction tx=session.beginTransaction();
String id =(String) request.getParameter("plane_id");
String hql="delete from Plane p where p.id=:id ";
Query query =session.createQuery(sql)
query.setString("id",id);
query.executeUpdate();
tx.commit();
HibernateUtil hibera=new HibernateUtil();
Session session=hibera.currentSession();
Transaction tx=session.beginTransaction();
Plane p=(Plane)session.load(Plane.class, new Integer(id));
session.delete(p);
session.flush();
tx.commit();
session.close();
}
时间可是不短了!可以这样写:
Plane plane = (Plane)session.get(Plane.class,id);
session.delete(plane);
当然你的session得打开用完后关闭呀!