第一级Session的缓存。由于Session对象的生命周期通常对应一个数据库事务或者一个应用事务,因此他的缓存是事务范围的缓存,第一级缓存是必须的,无法卸载。第一级缓存中,持久化类的每个实例都有唯一的OID。

第二级缓存是一个可插拔的缓存插件,他是由SessionFactory负责管理,由SessionFactory对象的生命周期和应用程序的整个过程对应。因此,二级缓存是进程范围或者集群范围的缓存。整个缓存中存放对象是松散数据。二级对象有可能出现并发问题,因此需要采取适当的并发访问策略,为被缓存的数据提供食物隔离级别。缓存适配器用于把具体的缓存实现软件与Hibernate集成。第二级缓存是可选的,可以在每个类或者集合的力度上配置二级缓存。