127.Hibernate二级缓存

…衆ロ難τιáo~ 提交于 2020-02-08 17:52:41

在项目中,有些数据几乎不会改变,作为共享数据来使用的时候,它们就是二级缓存。

Hibernate并没有提供二级缓存的解决方案。但是市面上有解决二级缓存的第三方组件,如:EhCache、OsCache、JbossCache、MomeryCache等。

特性:  1.修改不能特别频繁。

           2.数据可以公开。

二级缓存在SessionFactory中,因为SessionFactory是线程安全的,所以二级缓存也是线程安全的。

二级缓存的生活周期和SessionFactory一样。

怎么样把数据放入二级缓存?

怎么样把数据从二级缓存中提取出来?

Hibernate默认二级缓存是关闭的。所以需要在

1.hibernate.cfg.xml中配置二级缓存。5.0这么配置不对

  1. 在Mapping文件中配置。注意<cache>的位置必须在<id>之前

 

session.get方法的作用:1.把一个对象变成持久化状态的对象。2.把该对象存放到session的一级缓存中。3.把该对象存入sessionFactory的二级缓存中。

session.clear方法清除一级和二级缓存。

session.save方法特殊,它只放入一级缓存,不放入二级缓存。

session.flush会把数据放入二级缓存中。

session.get、session.load、session.update都放入二级缓存。

session.get和load方法都可以从二级缓存获取数据。

二级缓存非常危险,线程不安全,所以一般公司都设置成read-only,只把常量放里面。

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!