• 瞬时态:new一个对象后即处于瞬时态。这个对象所保存的数据域数据库没有任何关系,除非通过Session的save()、saveOrUpdate()、persist()或merge()把瞬时态对象跟数据库关联,这个对象才会转换为持久态对象。
  • 持久态:该对象再数据库中有对应的记录,并拥有一个持久化标识(id)。对持久态对象进行delete操作后,数据库中对应记录将被删除。那么持久态对象与数据库不再存在对应关系,从而变成移除态(可以视为瞬时态)。持久态对象被修改后,不会马上同步到数据库,除非事务提交。
  • 游离态(托管态):当Session进行了close()、clear()、evict()或flush()后,实体对象将从持久态变为游离态对象虽然拥有和数据库一致的标识值,但是因为对象已经从会话中清除掉,对象不在持久化管理中,所以处于游离态。游离态与瞬时态十分相似,只是它有持久化标识。