hibernate.cache.use_query_cache Hibernate的查询缓存,设置为true表示开启,同时也要设置 query.setCacheable(true);缓存
开启查询缓存的方式
服务器
hibernate.cache.use_query_cache 设置为true ;query.setCacheable(true);app
hibernate.cache.use_query_cache 设置为true ;query.setCacheable(true);在要缓存的实体前面加上@Cache(usage = CacheConcurrencyStrategy.READ_WRITE)spa
这两种方式是有区别的,第一种会把查询到的数据的id缓存在内存中,下次查询的时候使用id去查询load,若是这个id对应的数据没有了就会报错。第二种是把查询的数据整个都缓存起来,下次查询的时候直接把数据返回,也再也不作检查。hibernate
之前一直觉得没有在实体前面添加@Cache(usage = CacheConcurrencyStrategy.READ_WRITE)是不会缓存的,知道后来项目遇到后台删除了数据,app获取数据的时候出现了异常(后台和app服务器是两个应用)。内存