事务级缓存:
在当前事务(数据库或应用事务)范围内的数据缓存。在Hibernate中事务及缓存是基于Session的生命周期实现的每一个Session会在内部维护一个数据缓存,它随着Session的创建而创建,销毁而销毁。在同一个事务缓存中每个持久化类的对象都是唯一的
应用级缓存:
缓存被进应用进程内的所有事务所共享,这些事务可能会并发访问缓存。这种情况下就需要调用事务的隔离机制,在Hibernate中应用级缓存是由SessionFactory实现,所有用SessionFactory创建的Session对象共享此缓存。
Hibernate:(一级缓存)
当Hibernate应用程序调用Session的save() update() saveOrUpdate() load() get() 方法时,或者调用Query的list() iterate() 方法时 如果Session中在不存在相应的对象,Hibernate就会把该对象加入到一级缓存中。
Hibernate:(二级缓存)
Hibernate的二级缓存是应用或分布式范围的缓存。
EHCache:作为应用范围内的缓存。
OSCache:作为应用范围内的缓存。
JBosslache:作为分布式范围内的缓存。
read—only:只读应用于不会发生改变的数据
nonstrict—read—write:非严格读写,不保证缓存数据与数据库的一致性。
read—write:严格可读写缓存,用于数据同步数据同步很严格的情况。
transactional:事务型缓存