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服務器是兩個應用)。內存