我已閱讀this post.我無法獲得本文中建議的整個對象。我得到MIN,MAX,Count值。所以一個新的職位。 以下是我想要的和我擁有的。用於標量查詢的休眠緩存
- 我的Spring應用程序不會對DB(MySQL)進行任何更改。它只是讀取數據。它不會意識到對數據庫中的現有數據所做的更改。
我的所有查詢都返回標量數據。不是整個對象。 (例如:
Select employee.name,office.address,MIN(employee.rec) from ... where..
)我希望我的查詢被緩存。因此,我在休眠配置中啓用了查詢緩存。並將
cacheable="true"
添加到了我的命名查詢中。
4.I啓用二級緩存。
5.爲持久化類添加下面的註釋。
@Cacheable
@Cache(usage = CacheConcurrencyStrategy.NONSTRICT_READ_WRITE)
6.我想每隔24小時刷新緩存。因此在ehcache.xml defaultCache
中更新了timeToLiveSeconds
。
這是正確的方法嗎?如何知道查詢是否從查詢緩存中訪問二級緩存?
更新:我添加了統計信息,並且二級緩存沒有命中/未命中。
沒有意義在使實體緩存,因爲你永遠不會從你的查詢返回它們。要知道緩存是否被命中,請打開SQL日誌記錄(通過將propert hibernate.show_sql設置爲true),並查看是否生成查詢。 –
謝謝@JBNizet。我認爲我所有的其他配置都是正確的:) – dj8485