執行該程序 觀察控制臺輸出
再查看數據庫中user表內容
發現持久對象的狀態改變Hibernate能知道,會在數據庫中得到反映。
脫管對象的狀態如果想將其狀態反映到數據庫中,可以調用session的update方法。
當我們不知道對象是瞬時的還是脫管的,可以調用session的saveOrUpdate方法,由Hibernate自己(根據對象的id是否有值)判定處理。 調用saveOrUpdate保存對象,對象將變成持久的,而調用merge方法對象還是脫管的。
對象調用setName等方法,數據庫并不會立即更新,而是到執行commit語句后才更新。盡量延遲和數據庫的交互。
補充:三種對象轉換關系圖