1. 程式人生 > >使用hibernate過程中,遇到的一些sql報錯

使用hibernate過程中,遇到的一些sql報錯

       現在進入了一家新公司,已經快2個月了。公司是做電子政務的,產品已經很成熟了。現在每天的工作就是針對各個專案的產品,完成JIRA上分配來的各種任務,有開發任務、bug修復、需求改進等。現在已經很熟悉專案的業務和架構了,但還是遇到各種各樣的問題,現在儘量把遇到的問題及解決方式記錄下,在點滴積累中成長。

       1、could not extract ResultSet,這個錯誤很常見,一般都是sql錯誤。可能為:

        (1)欄位拼寫錯誤,資料庫表中找不到這個欄位;

        (2)空格問題,拼接sql的時候,忽略了某些空格,例如where和from前面要有空格。

        (3)實體類欄位型別與資料庫欄位型別對應不上。例如資料庫為日期型別,實體類使用了String。

        (4)未注意資料庫方言,例如mysql和oracle的日期轉換函式就不一樣,忽略就會出錯。

        (5)還有些空指標異常,可能是非null欄位,傳遞了null值。

       2、找不到表,原因可能為:

       (1)忘記在資料庫表對應的實體類上加@Entity和@Table註解;

       (2)@Table上標註的名字,與資料庫表名字不一致,會找不到表。

       3、SQL Error: 904, SQLState: 42000 ORA-00904: "BASECONTEN0_"."RETURN_STATUS": 識別符號無效

org.hibernate.exception.SQLGrammarException: could not extract ResultSet
       原因:後臺實體類已經添加了欄位,加了column註解,資料庫表還未增加該欄位。實體類裡,不存入資料庫的欄位,需新增@Transient註解,表示忽略這些欄位屬性,不持久化到資料庫。

       未完待續,會持續更新。