1、hibernate的三种状态分别是:瞬时态、持久态和游离态,那么每种状态有什么特点呢?
2、瞬时态:只是在jvm内存获取一块空间,还没有在数据库中处于持久化状态,它的最大特点是:在数据库不存在与它对应的记录。例如:Student s=new Student();总结瞬时态的特点:①、不与session实例关联;②、在数据库中没有和瞬时对象关联的记录。
3、持久态:持久化对象就是已经被保存进数据库的实体对象,并且这个实体对象还处于hibernate的缓存管理中,这时对实体对象的任何修改,都会在清理缓存时同步到数据库中。持久态的特点是:①、持久的实例在数据库中有对应的记录并拥有一个持久化标识(identifier);②、和session相关联的对象。 ——》 将瞬时态的对象转化成持久态的对象:通过session对象的save()或saveorupdate()方法,该方法把一个瞬时对象与数据库相关联,这个瞬时对象就称为持久化对象。
4、游离态(托管状态):该状态最大的特征就是对象脱离了hibernate的缓存管理状态。——》游离态与瞬时态的区别是:瞬时态时数据库没有与其对应的记录;而游离态时数据库中有一个对应的记录但是脱离了hibernate缓存管理状态。(下图中所说的临时状态指的是瞬时态)