1.临时状态和游离状态都不在session的生命周期中.
2.临时状态:创建实例时是临时状态,不设置实体id或设置的id在表中找不到(delete操作)
3.游离状态(脱管状态):不在session的生命周期中,但实体id(持久化标识)与实际数据库中主键Id都存在且对 应.
4.持久化状态:在session的生命周期中,不仅实体id(持久化标识)与实际数据库中主键Id都存在且对应,并且与数据库中的表保持同步.
三种状态的转换:
临时-->游离 手动设置实体id与数据库中实体主键id对应
游离-->持久 在session生命周期中调用Hibernate Session的持久化方法save(),SaveOrUpdate()方法
临时-->持久 在session生命周期中调用Hibernate Session的持久化方法get(),load(),find(),iterate()方法
游离-->临时 在session关闭后,清除实体id属性的值或设置成表中不存在的主键Id
持久-->游离 关闭session,即使得不在session的生命周期中,可以调用evict(),close(),clear()
持久-->临时 在关闭session前,即session的生命周期结束前,从数据库中删除实体delete(),则关闭 session 后, 实体中即使得不在session的生命周期中.
2.临时状态:创建实例时是临时状态,不设置实体id或设置的id在表中找不到(delete操作)
3.游离状态(脱管状态):不在session的生命周期中,但实体id(持久化标识)与实际数据库中主键Id都存在且对 应.
4.持久化状态:在session的生命周期中,不仅实体id(持久化标识)与实际数据库中主键Id都存在且对应,并且与数据库中的表保持同步.
三种状态的转换:
临时-->游离 手动设置实体id与数据库中实体主键id对应
游离-->持久 在session生命周期中调用Hibernate Session的持久化方法save(),SaveOrUpdate()方法
临时-->持久 在session生命周期中调用Hibernate Session的持久化方法get(),load(),find(),iterate()方法
游离-->临时 在session关闭后,清除实体id属性的值或设置成表中不存在的主键Id
持久-->游离 关闭session,即使得不在session的生命周期中,可以调用evict(),close(),clear()
持久-->临时 在关闭session前,即session的生命周期结束前,从数据库中删除实体delete(),则关闭 session 后, 实体中即使得不在session的生命周期中.