共找到15條詞條名為Po的結果 展開
Po
持久對象 (persistent object)
PO是持久化對象。它是對物理數據實體的一種對象表示,它的使用可以簡化我們對於物理實體的了解和耦合,簡單地講,就是可以簡化對象的數據轉換為物理數據的編程。
po(persistent object)就是在Object/Relation Mapping框架中的Entity,po的每個屬性基本上都對應資料庫表裡面的某個欄位。完全是一個符合Java Bean規範的純Java對象,沒有增加別的屬性和方法。持久對象是由insert資料庫創建,由資料庫delete刪除的。基本上持久對象生命周期和資料庫密切相關。
PO的全稱是:持久對象(persistant object)。最形象的理解就是一個PO就是資料庫中的一條記錄。好處是可以把一條記錄作為一個對象處理,可以方便的轉為其它對象。PO是由一組屬性和屬性的get和set方法組成。
在o/r映射的時候出現的概念,如果沒有o/r映射,就沒有這個概念存在了。通常對應數據模型(資料庫),本身還有部分業務邏輯的處理。可以看成是與資料庫中的表相映射的java對象。最簡單的PO就是對應資料庫中某個表中的一條記錄,多個記錄可以用PO的集合。PO中應該不包含任何對資料庫的操作。
PO的屬性是跟資料庫表的欄位一一對應的。PO對象需要實現序列化介面。
在Hibernate中,最核心的概念就是對PO的狀態管理。一個PO有三種狀態:
1.transient:瞬態或者自由態
未被持久化的VO,此時就是一個內存對象VO,由JVM管理生命周期。
2.persistent:持久化狀態
已被持久化的PO,並且在Session生命周期內,此時映射資料庫連接,由資料庫管理生命周期。
3.detached:脫管狀態或者遊離狀態
曾被持久化過,但現在和Session已經託管(detached)了,以VO的身份在運行。它還可以進入另一個Session,繼續PO狀態管理。
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()進行持久化。