谈谈Hibernate的缓存

Hibernate支持两级缓存,一级缓存是Session级别的缓存,存储在Session对象中,可以减少数据库访问次数,提高性能。二级缓存是Session Factory级别的缓存,存储在Session Factory对象中,可以在多个Session之间共享数据,进一步减少数据库访问次数。一、缓存对象不同:Session级别的缓存只能缓存不可变对象,例如字符串、数字等。而Session Factory级别的缓存可以缓存任意对象,包括可变对象,例如数据库实体对象。二、缓存机制不同:Session级别的缓存是基于强制依赖的,也就是说,如果某个对象在缓存中已经存在,并且某个其他对象依赖于该对象,那么在访问该其它对象时,必须先访问缓存中的对象,确保缓存中的对象始终是最新的。Session Factory级别的缓存是基于可选依赖的,也就是说,如果某个对象在缓存中已经存在,并且某个其它对象依赖于该对象,那么我们可以选择是否访问缓存中的对象。如果我们选择访问缓存中的对象,那么可以减少数据库访问次数,提高性能。如果我们选择不访问缓存中的对象,那么可以确保缓存中的对象始终是最新的。

你可能感兴趣的:(JAVA,缓存,hibernate,java)