回覆列表
  • 1 # 使用者203071161205

      對於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

  • 中秋節和大豐收的關聯?
  • 居家隔離期20天到了,之後怎麼辦?