Hibernate 物件生命週期管理是掌握 ORM 框架的核心。每個實體物件在應用程式中都會處於三種狀態之一:瞬時態、持久態、游離態。理解這三種狀態的轉換規則,能有效避開常見的資料同步錯誤與效能陷阱。
| 狀態 | 資料庫對應 | Session 管理 | 同步機制 |
|---|---|---|---|
| 瞬時態 | 無對應記錄 | 未納入管理 | 不自動同步 |
| 持久態 | 有對應記錄 | 納入 Session 管理 | 髒檢查自動同步 |
| 游離態 | 有對應記錄 | 脫離 Session 管理 | 需手動更新 |
session.save(entity) / persist(entity)session.close() / session.evict(entity) / session.clear()session.update(entity) / session.merge(entity) / session.lock(entity, LockMode.NONE)merge() 更安全,會複製狀態到持久物件session.delete(entity) 可從持久/游離態移除資料避免常見錯誤:
merge() 而非 update()flush() 和 clear() 避免記憶體溢出
精通三大狀態轉換,是從「會用 Hibernate」進階到「駕馭 Hibernate」的關鍵分水嶺。