隨筆-3  評(píng)論-2  文章-0  trackbacks-0
          請(qǐng)高手教教我吧.
          在hibernate中查詢數(shù)據(jù),查詢語(yǔ)句中包含sql函數(shù)String sql = (select * from employee emp where left(dbo.f_GetPy(name,1)='要查詢的字母')
          其中dbo.f_GetPy(name),1)為sql server 2000中的自定義函數(shù),"name"是列名。其作用是按漢字的字符串的第一個(gè)字的英文首字母查出相應(yīng)的字符串(按首字母查詢)。
          我用的是List list = session.createSQLQuery(sql)
          .addEntity("emp",Employee.class)
          .list() ;
          方法。
          報(bào)的錯(cuò)誤是.list()那行。sql語(yǔ)句在查詢分析器中試過(guò)了,沒(méi)問(wèn)題。具體錯(cuò)誤代碼如下:

          HTTP Status 500 -

          --------------------------------------------------------------------------------

          type Exception report

          message

          description The server encountered an internal error () that prevented it from fulfilling this request.

          exception

          javax.servlet.ServletException: could not execute query
          org.apache.struts.action.RequestProcessor.processException(RequestProcessor.java:535)
          org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:433)
          org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:236)
          org.apache.struts.action.ActionServlet.process(ActionServlet.java:1196)
          yfy.struts.MyActionServlet.process(MyActionServlet.java:17)
          org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:414)
          javax.servlet.http.HttpServlet.service(HttpServlet.java:689)
          javax.servlet.http.HttpServlet.service(HttpServlet.java:802)


          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.custom.CustomLoader.list(CustomLoader.java:111)
          org.hibernate.impl.SessionImpl.listCustomQuery(SessionImpl.java:1655)
          org.hibernate.impl.AbstractSessionImpl.list(AbstractSessionImpl.java:142)
          org.hibernate.impl.SQLQueryImpl.list(SQLQueryImpl.java:164)
          yfy.dao.BaseDaoImpl.execSQLQuery(BaseDaoImpl.java:138)
          yfy.struts.action.EmpNameListAction.execute(EmpNameListAction.java:40)
          org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:431)
          org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:236)
          org.apache.struts.action.ActionServlet.process(ActionServlet.java:1196)
          yfy.struts.MyActionServlet.process(MyActionServlet.java:17)
          org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:414)
          javax.servlet.http.HttpServlet.service(HttpServlet.java:689)
          javax.servlet.http.HttpServlet.service(HttpServlet.java:802)

          請(qǐng)高手們幫我解答。謝謝
          posted on 2008-09-23 19:01 想想 閱讀(600) 評(píng)論(2)  編輯  收藏

          評(píng)論:
          # re: 幫幫我,hibernate的sql查詢出錯(cuò)??? 2008-10-03 16:08 | roywang
          String sql = (select * from employee emp where left(dbo.f_GetPy(name,1)='要查詢的字母')
          我覺(jué)得這里有問(wèn)題,在Hibernate中語(yǔ)法應(yīng)該是 from 類(lèi)名 where 屬性名
          是面向?qū)ο蟮模皇怯帽砀竦牧忻?nbsp; 回復(fù)  更多評(píng)論
            
          # re: 幫幫我,hibernate的sql查詢出錯(cuò)??? [未登錄](méi) 2010-05-24 16:11 | 111
          @roywang
          人家要用的是sql查詢?。?!  回復(fù)  更多評(píng)論
            

          只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。


          網(wǎng)站導(dǎo)航:
           
          主站蜘蛛池模板: 锡林浩特市| 嘉兴市| 沂水县| 新巴尔虎左旗| 顺昌县| 含山县| 台北市| 应城市| 公主岭市| 通山县| 轮台县| 怀仁县| 宜章县| 大余县| 桃江县| 水城县| 东至县| 江山市| 临邑县| 达州市| 锦屏县| 东阿县| 渑池县| 江山市| 保定市| 吐鲁番市| 深水埗区| 常州市| 嘉善县| 贞丰县| 厦门市| 三都| 阆中市| 五原县| 华池县| 瑞昌市| 汝南县| 滦南县| 上饶市| 远安县| 宽甸|