瞬時態(Transient)、 持久態(Persistent)、脫管態(Detached),處于持久態的物件也稱為PO(Persistence Object),瞬時物件和脫管物件也稱為VO(Value Object),
瞬時態:沒有持久化標示符,資料庫中無對應記錄,當執行save和persist方法可以變成持久態,
持久態:處于該狀態的物件在資料庫中具有對應的記錄,并擁有一個持久化標識,如果是用hibernate的delete()方法,對應的持久物件就變成瞬時物件,因資料庫中的對應資料已被洗掉,該物件不再與資料庫的記錄關聯,當一個session執行close()或clear()、evict()之后,持久物件變成脫管物件,此時持久物件會變成脫管物件,此時該物件雖然具有資料庫識別值,但它已不在HIbernate持久層的管理之下,
持久物件具有如下特點:
1. 和session實體關聯;
2. 在資料庫中有與之關聯的記錄,
脫管態:當與某持久物件關聯的session被關閉后,該持久物件轉變為脫管物件,當脫管物件被重新關聯到session上時,并再次轉變成持久物件,
脫管物件擁有資料庫的識別值,可通過update()、saveOrUpdate()等方法,轉變成持久物件,
脫管物件具有如下特點:
1. 本質上與瞬時物件相同,在沒有任何變數參考它時,JVM會在適當的時候將它回收;
2. 比瞬時物件多了一個資料庫記錄標識值,
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/230890.html
標籤:其他
