Hibernate的二级缓存是否可以用于COUNT()操作?

Hibernate的二级缓存是否可以用于COUNT()操作?,hibernate,jpa,ehcache,second-level-cache,Hibernate,Jpa,Ehcache,Second Level Cache,当使用Hibernate和Ehcache作为二级缓存2LC实现时,在使用WHERE子句执行计数操作时是否使用或是否可以使用此缓存 在SQL术语中,我执行的查询是从someColumn>100的表中选择COUNTid。在某些情况下,每次传递的值都不同,有时总是相同的 我假设这不在2LC的范围内,而是需要“手动”管理缓存查询结果,并在基础数据发生更改时使该缓存无效。你是对的,这超出了二级缓存提供的功能。然而,这会起作用 基本上,Hibernate将缓存示例中命名参数[100]元组与名为org.Hib

当使用Hibernate和Ehcache作为二级缓存2LC实现时,在使用WHERE子句执行计数操作时是否使用或是否可以使用此缓存

在SQL术语中,我执行的查询是从someColumn>100的表中选择COUNTid。在某些情况下,每次传递的值都不同,有时总是相同的


我假设这不在2LC的范围内,而是需要“手动”管理缓存查询结果,并在基础数据发生更改时使该缓存无效。

你是对的,这超出了二级缓存提供的功能。然而,这会起作用

基本上,Hibernate将缓存示例中命名参数[100]元组与名为org.Hibernate.cache.StandardQueryCache的缓存中的查询结果之间的映射。当对表(查询中使用的任何表)进行更精确的更改时,它还将使缓存无效。每个表的最后修改时间存储在org.hibernate.cache.UpdateTimestampsCache缓存中

另见: