hibernate 数据的三种状态
①、临时状态 使用 new语句创建出来的对象 属于 "临时状态",数据只存在与内存中的,目前数据还未存放到数据库中
②、持久化状态 临时状态的数据,使用 save() 或者 saveOrUpdate() 方法,可以将数据从 "临时状态" 转变成 "持久化状态"
③、游离状态 持久化状态的数据,可以使用 evict() 或者 close() 或者 clear() 方法,将数据从 "持久化状态" 转换为 "游离状态"
游离状态的数据,可以使用update() 或者 saveOrUpdate() 或者 lock() 方法,将数据从 "游离状态" 转换为 "持久化"
联想记忆:
临时状态 可以理解为 单身状态
持久化状态 可以理解为 已婚状态
游离状态 可以理解为 离异状态
1、人在最初的时候都是单身状态
2、通过结婚,人才能从原来的单身状态 转变 到已婚状态
3、已婚状态的部分人,由于某种原因要分开,分开后的人将由已婚状态 转变为 离异状态
4、离异的人的部分人,由于某种特殊的需求,需要从离异状态 转变为 已婚状态
一、临时状态
临时状态对象特征:
①、使用 new 创建出来的对象,没有设置 id 属性
②、没有被 session 托管,换句话说 对象数据 存放在内存中, 没有存放到 session 缓存中
③、临时对象数据 与 数据库中的数据 还没任何关联
二、持久状态
持久状态对象特征:
①、要么是从数据库中使用 get 或 load 方法查询到的数据对象, 要么是 使用save 或 update 方法数据转变成持久层对象
②、对象 数据被 session 托管。换句话说 对象数据 在 session 缓存中有一份,在数据库中有相应的记录
三、游离状态
游离状态对象特征:
①、主要是通过 持久状态对象,调用 session.evict() 或 session.clear() 或 session.close() 得到