Hibernate 二级缓存如何与getAll&;配合使用;进入戈姆?

Hibernate 二级缓存如何与getAll&;配合使用;进入戈姆?,hibernate,caching,grails,gorm,Hibernate,Caching,Grails,Gorm,Hi已为域类设置“cache true”,这意味着已启用缓存 static mapping = { cache true } 现在,如果我说dominaclass.get(1),它不会命中数据库,但当我使用dominaclass.getAll()时,它会命中数据库 dominClass.getAll()不是从缓存中获取的吗?为什么每次都会访问数据库? 是否有从二级缓存中提取所有记录的选项?hibernate二级缓存无法确定缓存中是否存在“全部”。让我们用一些例子来解释为什么 案例1 g

Hi已为域类设置“cache true”,这意味着已启用缓存

static mapping = {
    cache true
}
现在,如果我说
dominaclass.get(1)
,它不会命中数据库,但当我使用
dominaclass.getAll()
时,它会命中数据库

dominClass.getAll()不是从缓存中获取的吗?为什么每次都会访问数据库?

是否有从二级缓存中提取所有记录的选项?

hibernate二级缓存无法确定缓存中是否存在“全部”。让我们用一些例子来解释为什么

案例1 get(1)询问缓存是否存在1。如果是,则返回它,如果未命中数据库,则缓存它并返回它。缓存中对1的进一步请求将从缓存返回

案例2 getAll()询问缓存是否存在“all”。然后,缓存必须考虑“这一切意味着什么?”唯一合乎逻辑的回答是“我不知道,但数据库知道。”

现在,在案例2中,您可能会认为,如果您请求“全部”,那么缓存可以缓存该响应。然而,这是一种不同于hibernate的二级缓存的缓存


简单地说,二级缓存用于实例,按域类和标识进行索引。

hibernate二级缓存不可能确定缓存中是否存在“全部”。让我们用一些例子来解释为什么

案例1 get(1)询问缓存是否存在1。如果是,则返回它,如果未命中数据库,则缓存它并返回它。缓存中对1的进一步请求将从缓存返回

案例2 getAll()询问缓存是否存在“all”。然后,缓存必须考虑“这一切意味着什么?”唯一合乎逻辑的回答是“我不知道,但数据库知道。”

现在,在案例2中,您可能会认为,如果您请求“全部”,那么缓存可以缓存该响应。然而,这是一种不同于hibernate的二级缓存的缓存


简单地说,二级缓存用于实例,按域类和标识进行索引。

hibernate二级缓存不可能确定缓存中是否存在“全部”。让我们用一些例子来解释为什么

案例1 get(1)询问缓存是否存在1。如果是,则返回它,如果未命中数据库,则缓存它并返回它。缓存中对1的进一步请求将从缓存返回

案例2 getAll()询问缓存是否存在“all”。然后,缓存必须考虑“这一切意味着什么?”唯一合乎逻辑的回答是“我不知道,但数据库知道。”

现在,在案例2中,您可能会认为,如果您请求“全部”,那么缓存可以缓存该响应。然而,这是一种不同于hibernate的二级缓存的缓存


简单地说,二级缓存用于实例,按域类和标识进行索引。

hibernate二级缓存不可能确定缓存中是否存在“全部”。让我们用一些例子来解释为什么

案例1 get(1)询问缓存是否存在1。如果是,则返回它,如果未命中数据库,则缓存它并返回它。缓存中对1的进一步请求将从缓存返回

案例2 getAll()询问缓存是否存在“all”。然后,缓存必须考虑“这一切意味着什么?”唯一合乎逻辑的回答是“我不知道,但数据库知道。”

现在,在案例2中,您可能会认为,如果您请求“全部”,那么缓存可以缓存该响应。然而,这是一种不同于hibernate的二级缓存的缓存


简单地说,第二级缓存用于实例,按域类和标识进行索引。

1如果我说getAll(1,2,3),也就是说如果我提供ID,那么它也不会从缓存中提取。为什么会这样?这是个很好的问题。我现在无法通过github找出原因,但我确信这是一个技术原因。您可能想询问Grails邮件列表。1事情是如果我说getAll(1,2,3),也就是说如果我提供ID,那么它也不会从缓存中获取。为什么会这样?这是个很好的问题。我现在无法通过github找出原因,但我确信这是一个技术原因。您可能想询问Grails邮件列表。1事情是如果我说getAll(1,2,3),也就是说如果我提供ID,那么它也不会从缓存中获取。为什么会这样?这是个很好的问题。我现在无法通过github找出原因,但我确信这是一个技术原因。您可能想询问Grails邮件列表。1事情是如果我说getAll(1,2,3),也就是说如果我提供ID,那么它也不会从缓存中获取。为什么会这样?这是个很好的问题。我现在无法通过github找出原因,但我确信这是一个技术原因。您可能想在Grails邮件列表中询问。