[英]Hibernate cache for scalar queries
我已經看過這篇文章。 我無法獲得這篇文章中建議的全部對象。 我正在獲得MIN,MAX,Count值。 因此,一個新的職位。 以下是我想要的和我擁有的。
我所有的查詢都返回標量數據。 不是整個對象。 (例如: Select employee.name,office.address,MIN(employee.rec) from ... where..
)
我希望查詢被緩存。 因此,我在休眠配置中啟用了查詢緩存。並將cacheable="true"
添加到命名查詢中。
4.我啟用了二級緩存。
5.為持久性類添加了以下注釋。
@Cacheable
@Cache(usage = CacheConcurrencyStrategy.NONSTRICT_READ_WRITE)
6.我想每24小時刷新一次緩存。 因此,在ehcache.xml defaultCache
更新了timeToLiveSeconds
。
這是正確的方法嗎? 如何知道查詢是否從查詢緩存中命中二級緩存?
更新:我添加了統計信息,並且二級緩存上沒有命中/未命中。
打開SQL日志記錄和統計信息生成。 如果看到SQL查詢日志記錄,則意味着緩存不起作用。
<property name="hibernate.show_sql" value="true"/>
<property name="hibernate.generate_statistics" value="true"/>
為了查看二級緩存上的命中數:
session.getSessionFactory().getStatistics().getSecondLevelCacheHitCount()
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.