hibernate中对象的瞬时态,持久态,脱管态

1.1  PO对象状态

hibernate规定3个状态:瞬时态Transient、持久态Persistent、脱管态Detached

       瞬时态:session没有缓存,数据库没有记录。(临时态)没有OID

       持久态:session有缓存,数据库最终会有。(托管态)有OID

       脱管态:session没有缓存,数据库有记录。(游离态)有OID

1.1.1   瞬时态

  瞬时态--> 持久态

       瞬时态,直接创建的对象。

       转换:执行save() 或 saveOrUpdate()

       Studentstudent = new Student();         //瞬时态

       session.save(student);                   //持久态 ,默认情况:执行insert语句,进数据库,临时数据,直到提交

l 瞬时态--> 脱管态

       手动设置OID

       Studentstudent = new Student();         //瞬时态

       student.setSid(1);                 //脱管态 (如果OID不存在,认为欺骗hibernate,将抛异常)

1.1.2   持久态

持久态-->瞬时态

       执行delete() 瞬时态

 持久态-->脱管态

       执行

              session.close()  关闭

              session.clear() 清空缓存

              session.evict(object)将指定对象从缓存移除

1.1.3   脱管态

 脱管态-->瞬时态

       手动移除OID,设置成默认值。

 脱管态-->持久态

       执行update()  或 saveOrUpdate()



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值