Hibernate中的实体状态

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的生命周期中.
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值