Hibernate執行select操作,控制臺會出現update

Yangcl 11年前發布 | 7K 次閱讀 EncFSMP SmartSynchronize



        Hibernate執行select操作為什么控制臺會出現update,然后會導致數據庫對應的某個表的一個或幾
個字段下所有內容都變成null?
        控制臺出現:Hibernate: select employeebe0_.id as id1_. employeebe0_. statu 后,又出現:
Hibernate: update employeebe0_. id as id1_, employeebe0_. statu 這樣的內容的原因就是Dao查詢出來
的值和數據庫的值不對應,以至hibernate判斷查詢出來的對象發生了變化,所以會自動執行更新操作,
操作會更新到數據庫,如果是一個字段不對應,則數據庫中這個字段下所有內容都會改變,常見的是該字段下所有內容變成null。
        典型情況描述:數據表中手動插入測試數據,各個列對應都有值,且數據庫完好。當執行SQL語句的select操作時,頁面對應表格中一列或幾列不顯示數據庫中的值。此時再次刷新數據庫,發現這幾列的數據遺失。
        比如你的name字段,在數據庫下本來是有值的,可是運行系統的時候查不出來,在對應的表格中不顯示name列下的內容。這是你在去數據庫中找到實體類對應的表的時候,執行刷新,你會發現數據庫表中的name列也沒有值了。癥結在于你的實體類:
public void setName(String name)
{
       this.name =  name;
}這里出現了問題。
        建議解決辦法是:將實體類中所有的getter() 和 setter()方法都刪除掉,然后利用你的IDE重新在生成
這些getter() 和 setter()方法。



 本文由用戶 Yangcl 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!