hibernate,hql與sql的快取使用
getSessionFactory().evictQueries(); //清除快取 1.在hibernate中createQuery執行hql查詢的時候使用查詢快取:
2.在hibernate中createSQLQuery執行sql時使用查詢快取:
這樣會報錯,原因是That's because the aim of the second level cache is to (ultimately) cache entities that Hib knows about. I haven't verified this but I'm not surprised that caching sql query doesn't work as those are not (directly) translated by hibernate into entities. 解決方法: It's solutioned adding column's types to the query, using the method "addScalar()" like this:
|