Java hibernatetemplate清除ehcache? 公共列表getContactInfoList(){ hibernateTemplate.setCacheQueries(true); hibernateTemplate.setQueryCacheRegion(“query.ContactInfoList”); List List=hibernateTemplate.find(“从AdoContactInfo a中,active=1”); hibernateTemplate.setCacheQueries(false); 退货清单; }

Java hibernatetemplate清除ehcache? 公共列表getContactInfoList(){ hibernateTemplate.setCacheQueries(true); hibernateTemplate.setQueryCacheRegion(“query.ContactInfoList”); List List=hibernateTemplate.find(“从AdoContactInfo a中,active=1”); hibernateTemplate.setCacheQueries(false); 退货清单; },java,hibernate,spring,ehcache,Java,Hibernate,Spring,Ehcache,我可以知道在调用hibernatetemplatesaveupdate时如何清除/刷新缓存以进行查询。ContactInfoList <ehcache> <cache name="query.ContactInfoList" maxElementsInMemory="200" eternal="true" overflowToDisk="false" timeToIdleSeconds="300"

我可以知道在调用hibernatetemplatesaveupdate时如何清除/刷新缓存以进行查询。ContactInfoList

<ehcache>
    <cache name="query.ContactInfoList"
        maxElementsInMemory="200"
        eternal="true"
        overflowToDisk="false"
        timeToIdleSeconds="300"
        timeToLiveSeconds="600"
    />
</ehcache>

public List getContactInfoList(){
    hibernateTemplate.setCacheQueries(true);
    hibernateTemplate.setQueryCacheRegion("query.ContactInfoList");
    List list = hibernateTemplate.find("from AdoContactInfo a where active = 1");
    hibernateTemplate.setCacheQueries(false);
    return list;
}
将清除该缓存区域。不能手动刷新缓存的查询数据;一旦查询再次运行,缓存区域将重新填充(如果启用)


将清除该缓存区域。不能手动刷新缓存的查询数据;一旦查询再次运行,缓存区域将被重新填充(如果启用)。

在Hibernatemplate.saveOrUpdate(contactLIst)之后调用此命令;hibernateTemplate.flush();hibernateTempalte.getSessionFactory().ReceiveQueries(“query.ContactInfoLIst”)?正确吗?如果您显式调用
flush()
来同步并发会话之间的状态,那么是的,您应该在
flush()
之后立即退出。不过,这似乎是一个相当不寻常的场景(另外,您还必须处理一级缓存)。通常,应避免手动调用
flush()
;会话将在提交时刷新-在这种情况下,您可以在提交之前退出查询。在HibernateMplate.saveOrUpdate(contactLIst)之后调用此命令;hibernateTemplate.flush();hibernateTempalte.getSessionFactory().ReceiveQueries(“query.ContactInfoLIst”)?正确吗?如果您显式调用
flush()
来同步并发会话之间的状态,那么是的,您应该在
flush()
之后立即退出。不过,这似乎是一个相当不寻常的场景(另外,您还必须处理一级缓存)。通常,应避免手动调用
flush()
;会话将在提交时刷新-在这种情况下,您可以在提交之前逐出查询。
hibernateTemplate.getSessionFactory().evictQueries("query.ContactInfoList");