1. 程式人生 > >Hibernate 查詢的結果集中的物件全部是重複物件

Hibernate 查詢的結果集中的物件全部是重複物件

問題原因:hibernate配置實體類主鍵繫結錯誤

Hibernate自動開啟一級快取。
一級快取:就是Session級別的快取,一個Session做了一個查詢操作,它會把這個操作的結果放在一級快取中,如果短時間內這個ession(一定要同一個session)又做了同一個操作,那麼hibernate直接從一級快取中拿,而不會再去連資料庫,取資料;

在建立資料庫表的時候,雖然Hibernate有逆向工程,但是這個效率太低了,所以一般都是建好資料庫不使用hibernate自動管理資料庫。

這個時候在設計資料庫的時候主鍵為id,普通欄位用到了userId。但是在配置該entity中主鍵設為了userId,把id設定為了普通的屬性。

這樣在資料庫表中有多條userId相同的資料,查詢的時候查出來的都是第一條物件。