hibernate的session提供了一级缓存,每一个session,对同一个id进行两次load,不会发送两条sql给数据库,可是session关闭的时候,一级缓存就失效了。 二级缓存是SessionFactory级别的全局缓存,它底下能够使用不一样的缓存类库,好比ehcache、oscache等,须要设置hibernate.cache.provider_class,咱们这里用ehcache,在2.1中就是 hibernate.cache.provider_class=net.sf.hibernate.cache.EhCacheProvider 若是使用查询缓存,加上 hibernate.cache.use_query_cache=true