我在grails应用程序中缓存了一些域实例和查询。我希望在第一次向db发出查询后,后续调用只会触发缓存。 但是,我看到定期查询命中db(每5-6次后)。同时没有数据更新/插入数据库。我正在使用p6spy检查所有记录的查询,并且看不到任何更新或插入。
我需要调整其他设置吗?
目前域类已
static mapping = {
cach true
}
findBy*
之类的查询设置了[cache:true]
。
答案 0 :(得分:5)
如果您没有配置Ehcache,您的缓存将使用120秒的默认超时。请参阅http://ehcache.org/ehcache.xml,以获取与Ehcache jar中默认文件相同的评论良好的示例文件。
您可以通过在应用程序中创建ehcache.xml来配置超时,内存中的最大元素,是否溢出到磁盘等。把它放在src / java中它会被复制到类路径中,Ehcache会看到它并使用你的而不是它的默认值。