今天同事在開發一張報表的時候,編寫一個視圖,通過heibernate hql 讀出的時候,發現了一個問題,頁面展現的數據都是sql集合的第一條語句。通過排查,發現控制檯hql輸出的sql語句在數據庫中執行的記錄是正確的,java代碼也沒有問題,視圖在數據圖中執行也沒有問題。
經過排查,發現問題是視圖中查詢的列沒有主鍵字段,但是實體中指定了一個字段做主鍵(hibernate中實體主鍵字段是必須的),剛好這個字段在視圖中查出來的值都是一樣的 所以hibernate根據主鍵的唯一性 就只取了第一條數據 然後填充原本是6條數據的list!
由於這個問題隱藏性很大,故留個標籤,已被後續查驗