谈谈对HIBERNATE中缓存的理解:hibernate提供二级缓存机制。
1.第一级缓存是session的缓存,由于session的生命周期是建立在一个数据库事务或者一个应用事务,因此这个缓存是事务范围的缓存。
2.第二级缓存是一个可插拔的缓存插件,它由sessionfactory负责管理,由于sessionfactory的生命周期和应用程序的整个过程对应,因此二级缓存是进程或者集群范围的缓存。二级缓存可能会发生并发问题,因此要采用并发访问策略,该策略为缓存数据提供事务隔离级别。另外,二级缓存是可选的。
3.hibernate的数据访问:hibernate根据ID访问数据对象时,首先从session一级缓存中查;如果查不到的话,如果配置了二级缓存,则从二级缓存中查,查不到,则再查数据库,把结果按照ID放入缓存中。
4. 什么样的数据适合放入二级缓存呢?
1)很少被修改的数据,不是很重要的数据,不会被并发访问的数据。