對於hibernate,它的物件有三種狀態,transient、persistent、detached
1.transient:瞬態或者自由態 (newDeptPo(1,地行政部地,20,地行政相關地),該po的例項和session沒有關聯,該po的例項處於transient)
2.persistent:持久化狀態 (和資料庫中記錄想影射的Po例項,它的狀態是persistent,透過get和load等得到的物件都是persistent)
3.detached:脫管狀態或者遊離態 (1)當透過get或load方法得到的po物件它們都處於persistent,但如果執行delete(po)時(但不能執行事務),該po狀態就處於detached,(表示和session脫離關聯),因delete而變成遊離態可以透過save或saveOrUpdate()變成持久態 (2)當把session關閉時,session快取中的persistent的po物件也變成detached 因關閉session而變成遊離態的可以透過lock、save、update變成持久態 持久態例項可以透過呼叫delete()變成脫管狀態。 透過get()或load()方法得到的例項都是持久化狀態的。 脫管狀態的例項可以透過呼叫lock()或者replicate()進行持久化。 save()和persist()將會引發SQL的INSERT,delete()會引發SQLDELETE, 而update()或merge()會引發SQLUPDATE。對持久化(persistent)例項的修改在重新整理提交的時候會被檢測到,它也會引起SQLUPDATE。 saveOrUpdate()或者replicate()會引發SQLINSERT或者UPDATE
對於hibernate,它的物件有三種狀態,transient、persistent、detached
1.transient:瞬態或者自由態 (newDeptPo(1,地行政部地,20,地行政相關地),該po的例項和session沒有關聯,該po的例項處於transient)
2.persistent:持久化狀態 (和資料庫中記錄想影射的Po例項,它的狀態是persistent,透過get和load等得到的物件都是persistent)
3.detached:脫管狀態或者遊離態 (1)當透過get或load方法得到的po物件它們都處於persistent,但如果執行delete(po)時(但不能執行事務),該po狀態就處於detached,(表示和session脫離關聯),因delete而變成遊離態可以透過save或saveOrUpdate()變成持久態 (2)當把session關閉時,session快取中的persistent的po物件也變成detached 因關閉session而變成遊離態的可以透過lock、save、update變成持久態 持久態例項可以透過呼叫delete()變成脫管狀態。 透過get()或load()方法得到的例項都是持久化狀態的。 脫管狀態的例項可以透過呼叫lock()或者replicate()進行持久化。 save()和persist()將會引發SQL的INSERT,delete()會引發SQLDELETE, 而update()或merge()會引發SQLUPDATE。對持久化(persistent)例項的修改在重新整理提交的時候會被檢測到,它也會引起SQLUPDATE。 saveOrUpdate()或者replicate()會引發SQLINSERT或者UPDATE