hibernate 一二级缓存问题
发布网友
发布时间:2022-04-13 20:35
我来回答
共4个回答
热心网友
时间:2022-04-13 22:05
一级缓存就是把通过session查询的数据保存到该session对象中,下次再查询时直接可以从这个session中先查找,如果有就不去查数据库了,但要求这个session不能关闭,如果关闭,则缓存自动销毁.
二级缓存是sessionFactory的缓存,需要单独加入第三方的支持,一般都使用ehcache或oscache.
二级缓存设置后可以把所有通过该sessionFactory来查询的数据保存到内存中(保存的数量可以配置,如果超出范围还可以设置保存到硬盘上),当再次查询时会先从缓存中查找,如果有就不会再从数据库中查询. 如果sessionFactory关闭或销毁,则缓存中的数据也会销毁.
一般开发中会将sessionFactory设置为单例,这样可以使用二级缓存.
热心网友
时间:2022-04-13 23:23
孙卫琴有本hibernate的书 大概13章第六节的样子
有详细讲解
网上有人给你讲也多半是复制的 这个问题一言难进
你只需要理解一级缓存就够了
热心网友
时间:2022-04-14 00:57
你可以简单的把一级缓存理解成为session级别的缓存,这个缓存的生命周期相对的小,你打开session,执行操作,再关闭session以后,这个缓存就失效了.
二级缓存大概相当于sessionFactory级别的缓存,生命周期长一些,不过二级缓存的实现依赖于第三方的缓存服务提供商,你可以在配置文件里自己配置,比如OSCache,对于更新操作频繁的对象/表,不建议开启二级缓存.
查询顺序:一级缓存->二级缓存->数据库
热心网友
时间:2022-04-14 02:49
这个问题很难啊!有人回答也是从网上复制