hibernate对对象分为3种状态:
transient:自由状态、临时状态。 VO (Value Object)。和数据库记录无关。非hibernate管理状态
persistent:持久状态。 PO (Persistenct Object) 和数据库记录一一对应。hibernate管理状态
detached:游离状态、脱钩状态、脱管状态。VO (Value Object) 和数据库记录有关。非hibernate管理状态
session.save/persist/ session.close/
+-----------+ saveOrUpdate +----------+ evict/clear +-----------+ session.merge
| |------------------->| |----------------->| |----------------
| transient | |persistent| | detached | |
| |<-------------------| |<-----------------| |<---------------
+-----------+ session.delete +----------+ session.update/ +-----------+
^ | saveOrUpdate
| |
session.load/get/ | |session.flush/
query.list/iterate/| |tx.commit
query.scroll | |
| v
+==========+
| |
| database |
| |
+==========+
transient:自由状态、临时状态。 VO (Value Object)。和数据库记录无关。非hibernate管理状态
persistent:持久状态。 PO (Persistenct Object) 和数据库记录一一对应。hibernate管理状态
detached:游离状态、脱钩状态、脱管状态。VO (Value Object) 和数据库记录有关。非hibernate管理状态
session.save/persist/ session.close/
+-----------+ saveOrUpdate +----------+ evict/clear +-----------+ session.merge
| |------------------->| |----------------->| |----------------
| transient | |persistent| | detached | |
| |<-------------------| |<-----------------| |<---------------
+-----------+ session.delete +----------+ session.update/ +-----------+
^ | saveOrUpdate
| |
session.load/get/ | |session.flush/
query.list/iterate/| |tx.commit
query.scroll | |
| v
+==========+
| |
| database |
| |
+==========+