HiberNate实体

hibernate实体有三个状态

1、瞬时状态
对象由new操作符创建,尚未与Session关联的对象被认为处于瞬态.瞬态对象不会持久化到数据库中,也不会被赋予持久化标识.而这个时候只在内存中存在,与数据库无关
2、持久状态
持久化实例在数据库中有对应的记录,并拥有一个持久化标识,持久化对象必须与指定的Session关联,
Hibernate会检测到处于持久化状态对象的改动,在当前操作完成时将对象数据写回数据库,开发者不用手动执行Update更新数据库,
这个时候内存中存在,数据库中也存在;
在修改持久状态的时候,不会去立即同步数据库,会先放入到一级缓存,当我们提交事务的时候 hibernate会把缓存与数据库同步(一定要事务的支持才会同步因为它是发了一个update语句)
3,游离状态
某个实例曾经处于持久化状态,但随着与之关联的Session被关闭,该对象就变成游离状态.游离状态的引用依然有效,对象可继续被修改.如果重新让游离状态与某个Session关联,该对象将重新转换为持久化状态,而托管期间的改动也可被写入数据库
这个时候在内存中存在,在数据库中不一定存在

HiberNate缓存

1、默认支持一级缓存,一级缓存是session级别
Session级别的一级缓存用于保存持久化实体,修改持久化实体时,
Session并不会立即把这种改变flush到数据库,而是缓存在当前Session的一级缓存中,
除非程序显式调用flush方法,或程序关闭Session时才会把这些改变一次性地flush到底层数据库.通过
Session缓存机制,可以减少与数据库的交互,从而提高数据库访问性能

<

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值