hibernate一级缓存机制(还有二级)

hibernate有一级和二级缓存机制,一般使用session了就自动启动了一级缓存机制,把第一次查询的结果都存放进了内存里面,所以后面查询就可以直接的从内存里面读取,减少访问物理数据源的频次,提高性能,除非使用evict、clear清楚了session的缓存,大部分情况这个缓存都有利于我们更快的查询,但是不排除会影响程序性能的可能。

evict清空Session中的一级缓存
clear清空一级缓存中的容器的数据


一级缓存 Session缓存 会话级缓存
一级缓存的生命周期和Session相同 Session销毁一级缓存也就会销毁


query.list()和query.iterate()区别


1.返回的类型不同:
list()返回List;iterate()返回Iterate。

2.查询策略不同:
list()直接发送sql语句,查询数据库;
iterate()发送sql语句,从数据库取出id,然后先从缓存中根据id查找对应信息,
有就返回结果,没有就根据id发送sql语句,查询数据库。

3.返回对象不同:
list()返回持久化实体类对象;
iterate()返回代理对象。

4.与缓存的关系不同:
list()只缓存,但不使用缓存(查询缓存除外);
iterate()不会缓存进去内存,但会使用缓存。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值