hibernate在持久对象的生命周期(三州:自由状态,持久状态,自由状态 之间的转换)
三种状态的基本概念: 1。 临时身份(Transient):也被称为自由状态,它只存在于内存中,并且在数据库中没有相应的数据。 使用new创建的对象,久化,没有处于Session中,处于此状态的对象叫暂时对象; 2, 持久化状态(Persistent):与session关联而且在数据库中有对应数据。 已经持久化。增加到了Session缓存中。如通过hibernate语句保存的对象。处于此状态的对象叫持久对象; 3, 游离状态(Detached):持久化对象脱离了Session的对象。如Session缓存被清空的对象。 特点:已经持久化,但不在Session缓存中。 处于此状态的对象叫游离对象; ×√ 暂时状态 (Transient) 持久化状态 (Persistent) 游离状态 (Detached) 是否处于Session缓存中 × √ × 数据库中是否有相应记录 × √ √ 游离对象和暂时对象异同: 两者都不会被Session关联,对象属性和数据库可能不一致; 游离对象有持久化对象关闭Session而转化而来,在内存中还有对象所以此时就变成游离状态了; Hibernate和SQL的关系: 在操作了hibernate的方法如save()等后。并没有直接生成sql语句,去操作数据库。而是把这些更新存入Session中。仅仅有Session缓存要被更新时,底层的sql语句才干运行