瞬時(Transient) - 由new操作符創(chuàng)建,且尚未與Hibernate Session 關聯(lián)的對象被認定為瞬時(Transient)的。瞬時(Transient)對象不會被持久化到數(shù)據庫中,也不會被賦予持久化標識(identifier)。 如果程序中沒有保持對瞬時(Transient)對象的引用,它會被垃圾回收器(garbage collector)銷毀。 使用Hibernate Session可以將其變?yōu)槌志?Persistent)狀態(tài)。(Hibernate會自動執(zhí)行必要的SQL語句)
• 持久(Persistent) - 持久(Persistent)的實例在數(shù)據庫中有對應的記錄,并擁有一個持久化標識(identifier)。 持久(Persistent)的實例可能是剛被保存的,或剛被加載的,無論哪一種,按定義對象都僅在相關聯(lián)的Session生命周期內的保持這種狀態(tài)。 Hibernate會檢測到處于持久(Persistent)狀態(tài)的對象的任何改動,在當前操作單元(unit of work)執(zhí)行完畢時將對象數(shù)據(state)與數(shù)據庫同步(synchronize)。 開發(fā)者不需要手動執(zhí)行UPDATE。將對象從持久(Persistent)狀態(tài)變成瞬時(Transient)狀態(tài)同樣也不需要手動執(zhí)行DELETE語句。