您的位置:首页 > 其它

Hibernate的缓存

2012-07-21 09:40 141 查看
1.默认的Session级别的一级缓存

2.可选的SessionFactory级别的二级缓存,这是全局性的缓存,所有session共享这个缓存,session会优先从这里加载实例。

缓存相当于一个Map,key为实体的标示属性值,value为实体

作用:除非程序显示调用Session的flush()方法,或程序关闭Session时才会把这些改变一次性地flush到数据库-------通过这种缓存,可以减少与数据库的交互,从而提高数据库访问性能。

一级、二级缓存都是对整个实体进行缓存,它不会缓存普通属性,如果想对普通属性进行缓存,则可以考虑使用查询缓存。

查询缓存的key是查询所用的SQL或HQL语句,查询缓存不仅要求所使用的HQL语句、SQL语句相同,甚至要求所传入的参数相同,hibernate才会从查询缓存中取得数据。

查询缓存默认是关闭的。只有经常使用相同的查询语句、并且使用相同查询参数才能通过查询缓存获得好处,查询缓存的生命周期知道属性被修改了为止。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: