请问一个关于hibernate二级缓存的问题

来源:百度知道 编辑:UC知道 时间:2024/05/03 17:00:35
,hibernate中可以通过配置OSCacheProvider来作为二级缓存的实现,那么那个 SessionFactory 是干什么呢,好像说这个SessionFactory也是二级缓存对吗,这个SessionFactory和OSCacheProvider有什么区别和联系呢,谢谢

hibernate的session提供了一级缓存,每个session,对同一个id进行两次load,不会发送两条sql给数据库,但是session关闭的时候,一级缓存就失效了。
二级缓存是SessionFactory级别的全局缓存,它底下可以使用不同的缓存类库,比如ehcache、oscache等,需要设置hibernate.cache.provider_class,我们这里用ehcache,在2.1中就是hibernate.cache.provider_class=net.sf.hibernate.cache.EhCacheProvider如果使用查询缓存,加上hibernate.cache.use_query_cache=true 缓存可以简单的看成一个Map,通过key在缓存里面找value。