異常以下所示:
數據庫
網上搜索了半天都沒有解決,包括stackoverflow這個
https://stackoverflow.com/questions/6446196/hibernate-query-getresultlist-exception數組
緣由分析,首先數據量並不大隻有幾十條。並非查詢數據太多超過list集合了。 因爲用的hibernate的hql查詢,開始懷疑是否是表關聯髒數據致使的。通過查看數據關聯並沒有異常。也不可能存在一對多自動變成多對多狀況出現。框架
仔細查看報錯行代碼以下:
第428行
測試
154行
hibernate
因爲query.getResultList()爲框架內部自帶的方法,不會出現bug。一時沒有頭緒。
最難解決的就是這種bug,有錯誤但看不到源碼,未報出具體錯誤緣由。很邪門,項目在本地重啓重試依然報錯。3d
後來考慮查詢主表最近有那些改動,確認數據庫沒有變更,只在代碼裏增長了一個數據類型。 查看查詢對象的entity以下:對象
忽然明白,問題就出在這裏。因爲新加業務訂單類型有新加了一個類型。 查看數據庫表數據type保存的是對應枚舉類型的索引值。
blog
總結: 一、此問題出現代碼緣由爲實體裏枚舉屬性沒有數據庫對應的索引值致使。數據庫存的是2,但orderType類型裏只有2個類型,沒有索引爲2的類型所以就報數組越界異常了。 二、業務緣由爲不一樣模塊功能開發用的同一個測試庫,一個分支上代碼變了並給庫裏新加了數據,另外一個分支上用此功能則會有髒數據。。索引