1:减少访问数据库的频率。应用程序从内存中读取持久化对象比到数据库中读取速度快多了,因此session的缓存可以提高数据访问的性能。
2:保证缓存中的对象与数据库中的相关记录保持同步。当缓存中的持久化对象的状态发生了变化,session并不会立即执行相关的sql语句,这使得session能够把几条相关的sql语句合并为一条sql语句,以便减少访问数据库的次数,从而提高应用程序性能。
session清理缓存的时间点:
1:调用事务的commit方法,commit()方法先清理缓存,然后再向数据库提交事务。
2:调用session的flush()方法。
hibernate提供了二级缓存,第一级缓存是session的缓存,不能修改。二级缓存是一个可插拔的缓存插件,他由sessionfactory负责管理。
一级缓存的生命周期通常是事务范围的缓存。
二级缓存的生命周期是进程级别。