持久化对象到底是个什么东西。持久化对象是已经存储到数据库或保存到本地硬盘中的对象?那以前不用hibernate 存到数据库的能不能叫持久化对象呢?还有什么是持久化状态?纠结呀。

解决方案 »

  1.   

    持久化对象是hibernate的一个概念,指的是当前被session管理,而且数据库中也有对应的记录.如果持久化状态,那么对对象的操作都会同步到数据库中
      

  2.   

    持久化顾名思义就是把缓存中的东西放到数据库中使之持久.对于需要持久化的对象,它的生命周期分为三个状态:临时状态,持久化状态,游离状态.
    临时状态:刚刚用new语句创建,没有被持久化,不处于session的缓存中.处于临时状态的java对象被称为临时对象.
    持久化状态:已经被持久化,加入到session的缓存中.处于持久化的java对象被称为持久化对象.
    游离状态:已经被持久化,但不处于session的缓存中,处于游离状态的java对象被成为游离对象.
    持久化对象的特征:
    .  位于一个session事例的缓存中,可以说持久化对象总是被一个session事例关联
    .  持久化对象和数据库中的相关记录对应
    .  Session在清理缓存时,会根据持久化对象的属性变化来同步更新数据库
    .  Session的save()方法把临时状态变为持久化状态.
    .  Session的update() ,saveOrUpdate()和lock()方法使游离状态变为持久化状态.