核心开发接口三,对象三种状态

Transient:对象刚刚new出来,设了一些其他值没有设id。当你调用了save或者saveOrUpdate,会转成Persistent,这个状态是有id的,比如这时我把session close了,这个对象就变成Detached(脱管,脱离管理的)。

三种状态的区别:1,有没有id。2,id在数据库里和在内存里有没有。

如果没有id,一定是Transient状态。

Teacher t =new Teacher();.现在有个对象new出来了,new完之后在内存有session对象,session对象要求保存t对象,会首先在内存里放一份t对象,其实是里边放了一个引用,指向了t对象,并不是真正放进去了。我们称之为缓存。缓存可以提高访问效率,原来放在硬盘里 硬盘里有一份,放数据库里也就是放到硬盘上了。我想用这个东西的时候每次从硬盘上取,效率很低,我们可以在内存里保留一份,从内存取就可以了。缓存就是内存里的一块区域,里边放着一系列想要读取效率的这样的对象,想引用。save完成之后,在session这个缓存里缓存了对象的id,session里有个map引用,map里有一系列的key,key就是对象的id,指向的是具体的对象,它指向的是value,value是我们的对象。key是id,value是对象的引用。



三种状态的区别:

Transient是内存中的一个对象,刚new出来没id,缓存里没有数据库里也没有。

Persistent内存中有缓存有数据库有,有id。

Detached:内存有缓存没有数据库有。但是数据库和内存对象没有联系。有id。

Transient  save()  Persistent.

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值