前幾天項目用到Map,接著調用Map.entrySet(),結果產生了一些意外的后果.
就是,持久化數據數據的時候出現setter of com.hiber.Hibernate.Test.id 異常.
此異常是提醒,pojo里面未有屬性的getter.
因為我在其他方法里面保存過,未曾出現異常,覺得甚是奇怪.后來發現,原來是Map.entrySet()搞的鬼,根據java api.
返回此映射中包含的映射關系的 set 視圖。返回的 set 中的每個元素都是一個 Map.Entry。該 set 受映射支持,所以對映射的改變可在此 set 中反映出來,反之亦然。如果修改映射的同時正在對該 set 進行迭代(除了通過迭代器自己的 remove 操作,或者通過在迭代器返回的映射項上執行 setValue 操作外),則迭代結果是不明確的。set 支持通過 Iterator.remove、Set.remove、removeAll、retainAll 和 clear 操作實現元素移除,即從映射中移除相應的映射關系。它不支持 add 或 addAll 操作。
為此,我寫了一個測試代碼.
代碼 |