我有一個基於散列的對象集合,如HashSet
或HashMap
。當hashCode()
的實現可以隨時間變化時,我可以遇到什麼問題,因爲它是從一些可變域中計算出來的?更改存儲在基於散列的集合中的對象的hashCode
它是如何影響Hibernate的?爲什麼hashCode()
默認返回對象的ID是否有缺陷?所有尚未保留的對象的id = 0,如果這很重要。
對於Hibernate映射實體,hashCode
的合理實現是什麼?一旦設置ID是不可變的,但在將實體保存到數據庫時不是這樣。
我並不擔心HashSet
與十幾個key = 0的實體的性能。我關心的是應用程序和Hibernate是否安全使用ID作爲散列碼,因爲ID會在持久生成時發生變化。
它會影響任何存儲任何基於hashCode的東西,所以如果您需要爲任何g-dam原因改變密鑰,請刪除1st,再次輸入 – bestsss 2011-03-02 22:24:55
我做了一次。花了我幾天的時間才發現這個錯誤。 – 2011-03-02 22:46:34