突然想起一個經常被自己忽略,直到測試program的時候才發現的新手問題,特此記錄
有時候,從database 取得data object 後,會因為不小心或個人原因把data object中的資料作出變更或刪除
但如果不是真的想update或者delete的話就要小心了,因為即使沒有hibernatesession.update(object)
在hibernatesession.commit() 的時候仍然會在database作出修改
例子:
List<Address> addressList = User.getAddressList(); --從User object 取得Address List
addressList.remove(0); --因為某原因刪除了第一個Address object
......
Other programs
......
hibernatesession.commit() --最後把Other programs 中的改動commit 到database
這樣的話, User Address List 的第一個Address object就會被delete
這種情況可以用以下program 避免:
List<Address> addressList = new ArrayList<Address>()'
addressList.addAll(User.getAddressList());