執行以下**:
string jpql = "from user u where u.id = ?";
query
query = entitymanager.createquery(jpql);
query.setparameter(1, 1);
user user = (user) query.getsingleresult();
query = entitymanager.createquery(jpql);
query.setparameter(1, 1);
user = (user) query.getsingleresult();
很顯然會執行兩次查詢
如果想要使用快取,只查詢一次,可以使用sethint
string jpql = "from user u where u.id = ?"
;query query = entitymanager.createquery(jpql).sethint(queryhints.hint_cacheable, true);
query.setparameter(1, 1);
user user = (user) query.getsingleresult();
query = entitymanager.createquery(jpql).sethint(queryhints.hint_cacheable, true);
query.setparameter(1, 1);
user = (user) query.getsingleresult();
注意:這裡的queryhints是org.hibernate.ejb.queryhints包下的,並且,使用查詢快取的前提是在配置檔案中配置了啟用查詢快取
name="hibernate.cache.use_query_cache" value="true"/>
django 學習筆記 14 快取機制
快取設定在settings 檔案 的 cache backend 中。這裡是乙個cache backend 所 有可用值的解釋。memcached 是迄今為止可 用於django 的最快,最有效的快取型別,memcached 是完全基於記憶體的快取框架,在安裝了memcached 本身之後,你將需要...
jpa 14 二級快取
在src 下增加乙個配置檔案 ehcache.xml 這個檔案直接拷貝來用即可了,不用理會裡面的內容。有須要的時候再研究也不遲 在 project etc目錄下拷貝過來 節點 若 jpa 實現支援二級快取,該節點可以配置在當前的持久化單元中是否啟用二級快取,可配置如下值 all 所有的實體類都被快取...
JPA學習筆記 二級快取
預設情況下開啟一級快取,如下 test public void testsecondlevelcache test public void testsecondlevelcache 下面配置二級快取 persistance.xml org.hibernate.ejb.hibernatepersist...