2009-08-23 93 views
-5
exception 
javax.servlet.ServletException: org.hibernate.exception.GenericJDBCException: could not execute query 
    org.apache.struts.chain.ComposableRequestProcessor.process(ComposableRequestProcessor.java:286) 
    org.apache.struts.action.ActionServlet.process(ActionServlet.java:1913) 
    org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:449) 
    javax.servlet.http.HttpServlet.service(HttpServlet.java:690) 
    javax.servlet.http.HttpServlet.service(HttpServlet.java:803) 


root cause 
org.hibernate.exception.GenericJDBCException: could not execute query 
    org.hibernate.exception.SQLStateConverter.handledNonSpecificException(SQLStateConverter.java:91) 
    org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:79) 
    org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:43) 
    org.hibernate.loader.Loader.doList(Loader.java:2153) 
    org.hibernate.loader.Loader.listIgnoreQueryCache(Loader.java:2029) 
    org.hibernate.loader.Loader.list(Loader.java:2024) 
    org.hibernate.loader.hql.QueryLoader.list(QueryLoader.java:369) 
    org.hibernate.hql.ast.QueryTranslatorImpl.list(QueryTranslatorImpl.java:300) 
    org.hibernate.engine.query.HQLQueryPlan.performList(HQLQueryPlan.java:153) 
    org.hibernate.impl.SessionImpl.list(SessionImpl.java:1127) 
    org.hibernate.impl.QueryImpl.list(QueryImpl.java:79) 
    org.cosmosociety.actions.BlogAction.execute(BlogAction.java:35) 

我的環境是postgre + tomcat + hibernate 3 + struts 1.x.我將在稍後看看hibernate 3的源代碼。如果我找到解決方案,我會更新每個人。Hibernate「無法執行查詢」異常!

+0

在此發佈實際查詢將有助於診斷問題。另外,爲什麼這個社區維基? – ChssPly76 2009-08-23 04:24:02

+0

我很抱歉有關wiki的事情。但是,我無法獲得sql命令,因爲這已經在託管服務器中。該應用程序適用於我的本地機器。它只是不適用於託管服務器。 :( – 2009-08-23 04:30:35

+1

你可以包括你的hibernate查詢,或者你的hibernate標準,還有一些導致這個異常的代碼?如果我們能看到創建這個異常的代碼,這將有助於我們理解問題 – apiguy 2009-08-23 04:35:27

回答

2

你檢查了你的權限嗎?如果它在本地工作,而不是在您的主機上工作,則可能有證書問題。

+0

這是一個偉大的但是,在我的情況下,它似乎並不適用,謝謝。 – 2009-08-24 12:03:32

1

檢查「託管服務器」與本地計算機之間的差異。

尤其是做了兩個模式

爲了進一步調試DIFF:

  • 激活SQL日誌記錄,讓您得到問題的SQL語句。如果您無法全局執行此操作,請在導致異常的命令之前以編程方式執行此操作,然後將其停用。

  • 執行SQL語句假設您獲取主機服務器上的異常你的機器上和「託管服務器」

  • ,但仍然沒有看到的原因,簡化一步的SQL語句一步,直到你找到有問題的部分,這反過來應該很好地識別問題。

+0

謝謝,我會檢查這些要點,並在此更新每個人:) – 2009-08-24 12:04:10

0

什麼你寫的查詢你沒有放在這裏?

在之前我也通過使用休眠獲得相同類型的錯誤。

在我的應用程序中,我犯了一些錯誤,比如我的表列名稱錯誤。

當我正在更正所有顯示成功的表列名稱。

您還可以檢查dbtable中的所有列名以及您在java類中給出的屬性名稱。