1. 程式人生 > >Hibernate 使用Query、SQLQuery 的setCacheable()設定快取問題

Hibernate 使用Query、SQLQuery 的setCacheable()設定快取問題

使用Hibernate SQLQuery或Query做查詢時,預設從快取中獲取資料,SQLQuery有個setCacheable( )方法,sqlQuery.setCacheable(false)為不從快取中讀取資料,

sqlQuery.setCacheable(true)為從快取中獲取資料。

這是我在專案中遇到的查詢快取問題,之前沒次切換使用者查詢時,總是查到上一個人的記錄, 設定sqlQuery.setCacheable(false)之後就好了。

SQLQuery sqlQuery = economicContractDao.getSession().createSQLQuery(sql.toString()).addEntity(EconomicContractEntity.class);

sqlQuery.setCacheable(false);