Query query=getHibernateTemplate().getSessionFactory().getCurrentSession().createSQLQuery(
"select...
getHibernateTemplate().setCacheQueries(true);
List result= query.list();
getHibernateTemplate().setCacheQueries(false);
return result;
我可以知道我什么时候手动“createSQLQuery”如何使用cacheQuery?上面没有缓存结果。 show_sql仍然显示从数据库获取的每个请求
当使用createSQLQuery
时,AFAIK,如果.addScalar
是.addEntity
,你必须使用明确的setCacheable
或true
,否则hibernate会在施法时感到困惑。除此之外,我的理解是它应该有效。
尝试配置ApplicationContext
<prop key="hibernate.cache.provider_class">org.hibernate .cache.EhCacheProvider</prop>
<prop key="hibernate.cache.use_second_level_cache">true</prop>
<prop key="hibernate.cache.use_query_cache">true</prop>