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