hibernate缓存包括两大类:一级缓存和二级缓存
———-一级缓存又称Session的缓存,它是内置的,不能卸载。由于Session对象的生命周期对应一个数据库事务或者一个应用事务,因此它是缓存是事务范围的缓存。在第一级缓存中,持久化类的每个实例都具体唯一的id
———-二级缓存又称SessionFactory的缓存,由于SessionFactory对象的生命周期和应用程序的整个过程对应,因此hibernate二级缓存是进程范围或者集群范围的缓存,有可能出现并发问题,因此需要采用适当的并发访问策略,该策略为被缓存的数据提供了事务隔离级别。第二级缓存是可选的,是一个可配置的插件,在默认情况下,SessionFactory不会启用这个插件
当hibernate根据id访问数据对象的时候,首先从Session一级缓存中查;查不到,如果配置了二级缓存,那么从二级缓存中查;如果都查不到,再查询数据库,把结果按照id放入到缓存删除、更新、增加数据的时候,同时更新缓存