首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > Java Web开发 >

hibernate 查询的有关问题

2012-01-06 
hibernate 查询的问题我的程序代码如下:sessionHibernateUtil.currentSession()txsession.beginTransac

hibernate 查询的问题
我的程序代码如下:
                        session   =   HibernateUtil.currentSession();
                        tx=session.beginTransaction();

                        Query   query=session.createQuery( "from   BATCH_TBL ");

                        List   batchTbls=query.list();
                        for(int   i=0;i <batchTbls.size();++i)
                        {
                                batchTbl=(BatchTbl)batchTbls.get(i);
                                System.out.println( "ID: "+batchTbl.getBatchId());
                        }

                        //此时p1已经可以在数据库中找到
                        tx.commit();

                        HibernateUtil.closeSession();
这段代码执行时出现如下异常:
Hibernate:   select     from
net.sf.hibernate.exception.GenericJDBCException:   Could   not   execute   query
                at   net.sf.hibernate.exception.SQLStateConverter.handledNonSpecificExcept
ion(SQLStateConverter.java:80)
                at   net.sf.hibernate.exception.SQLStateConverter.convert(SQLStateConverte
r.java:69)
                at   net.sf.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionH
elper.java:29)
                at   net.sf.hibernate.impl.SessionImpl.convert(SessionImpl.java:4131)
                at   net.sf.hibernate.impl.SessionImpl.find(SessionImpl.java:1557)
                at   net.sf.hibernate.impl.QueryImpl.list(QueryImpl.java:49)
                at   cfchina.hiber.buzutil.TestDataQuery.queryAllDataFromDB(TestDataQuery.
java:154)
                at   cfchina.hiber.action.TestHiberAction.queryAllRecord(TestHiberAction.j
ava:107)
                at   cfchina.hiber.action.TestHiberAction.process(TestHiberAction.java:49)

                at   cfchina.hiber.action.CRFAction.perform(CRFAction.java:62)
                at   org.apache.struts.action.Action.execute(Action.java:420)
                at   org.apache.struts.action.RequestProcessor.processActionPerform(Reques
tProcessor.java:484)
                at   org.apache.struts.action.RequestProcessor.process(RequestProcessor.ja
va:274)
                at   org.apache.struts.action.ActionServlet.process(ActionServlet.java:148


2)
                at   org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:525)

                at   javax.servlet.http.HttpServlet.service(HttpServlet.java:709)
                at   javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
                at   org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Appl
icationFilterChain.java:237)
                at   org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationF
ilterChain.java:157)
                at   org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperV
alve.java:214)
                at   org.apache.catalina.core.StandardValveContext.invokeNext(StandardValv
eContext.java:104)
                at   org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.jav
a:520)
                at   org.apache.catalina.core.StandardContextValve.invokeInternal(Standard
ContextValve.java:198)
                at   org.apache.catalina.core.StandardContextValve.invoke(StandardContextV
alve.java:152)
                at   org.apache.catalina.core.StandardValveContext.invokeNext(StandardValv
eContext.java:104)
                at   org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.jav
a:520)
                at   org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.j
ava:137)
                at   org.apache.catalina.core.StandardValveContext.invokeNext(StandardValv
eContext.java:104)
                at   org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.j
ava:118)
                at   org.apache.catalina.core.StandardValveContext.invokeNext(StandardValv
eContext.java:102)
                at   org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.jav
a:520)
                at   org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineVal
ve.java:109)
                at   org.apache.catalina.core.StandardValveContext.invokeNext(StandardValv
eContext.java:104)
                at   org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.jav
a:520)
                at   org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:929)

                at   org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:16
0)
                at   org.apache.coyote.http11.Http11Processor.process(Http11Processor.java
:799)
                at   org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.proce
ssConnection(Http11Protocol.java:705)
                at   org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java


:577)
                at   org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadP
ool.java:683)
                at   java.lang.Thread.run(Thread.java:534)
Caused   by:   java.sql.SQLException:   [Microsoft][SQLServer   2000   Driver   for   JDBC][SQ
LServer]在关键字   'from '   附近有语法错误。
                at   com.microsoft.jdbc.base.BaseExceptions.createException(Unknown   Source
)
                at   com.microsoft.jdbc.base.BaseExceptions.getException(Unknown   Source)
                at   com.microsoft.jdbc.sqlserver.tds.TDSRequest.processErrorToken(Unknown
  Source)
                at   com.microsoft.jdbc.sqlserver.tds.TDSRequest.processReplyToken(Unknown
  Source)
                at   com.microsoft.jdbc.sqlserver.tds.TDSRPCRequest.processReplyToken(Unkn
own   Source)
                at   com.microsoft.jdbc.sqlserver.tds.TDSRequest.processReply(Unknown   Sour
ce)
                at   com.microsoft.jdbc.sqlserver.tds.TDSCursorRequest.openCursor(Unknown
Source)
                at   com.microsoft.jdbc.sqlserver.SQLServerImplStatement.execute(Unknown   S
ource)
                at   com.microsoft.jdbc.base.BaseStatement.commonExecute(Unknown   Source)
                at   com.microsoft.jdbc.base.BaseStatement.executeQueryInternal(Unknown   So
urce)
                at   com.microsoft.jdbc.base.BasePreparedStatement.executeQuery(Unknown   So
urce)
                at   net.sf.hibernate.impl.BatcherImpl.getResultSet(BatcherImpl.java:89)
                at   net.sf.hibernate.loader.Loader.getResultSet(Loader.java:880)
                at   net.sf.hibernate.loader.Loader.doQuery(Loader.java:273)
                at   net.sf.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections
(Loader.java:138)
                at   net.sf.hibernate.loader.Loader.doList(Loader.java:1063)
                at   net.sf.hibernate.loader.Loader.list(Loader.java:1054)
                at   net.sf.hibernate.hql.QueryTranslator.list(QueryTranslator.java:854)
                at   net.sf.hibernate.impl.SessionImpl.find(SessionImpl.java:1554)
                ...   36   more

请高手指点一下这段代码错在什么地方!

[解决办法]
你的语句for(int i=0;i <batchTbls.size();++i)中变量i有问题 应该是i++ 否则指针益处了
[解决办法]
Query query=session.createQuery( "from BATCH_TBL ");这句有问题
from 后面放的是你用hibernate 事例化的对象,不是表名字

热点排行