Hibernate的缓存

来源:互联网 发布:淘宝闪迪官方旗舰店 编辑:程序博客网 时间:2024/05/02 19:21

1.默认的Session级别的一级缓存

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

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

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

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

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

查询缓存默认是关闭的。只有经常使用相同的查询语句、并且使用相同查询参数才能通过查询缓存获得好处,查询缓存的生命周期知道属性被修改了为止。

原创粉丝点击