0
Query query=getHibernateTemplate().getSessionFactory().getCurrentSession().createSQLQuery(
                "select...

getHibernateTemplate().setCacheQueries(true);
List result= query.list();
getHibernateTemplate().setCacheQueries(false);

return result;

我可以知道当我手动“createSQLQuery”时如何使用 cacheQuery 吗?以上不缓存结果。show_sql 仍然显示从数据库获取的每个请求

4

2 回答 2

1

AFAIK 使用时createSQLQuery,您必须使用显式.addScalar.addEntityif setCacheableis true,否则 hibernate 在转换时会感到困惑。除此之外,我的理解是它应该起作用。

于 2010-03-15T13:54:59.677 回答
1

尝试配置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>
于 2010-03-15T09:38:06.580 回答