gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-03 08:14:41 25 4
gpt4 key购买 nike

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

在 SQL 术语中,我正在执行的查询是 SELECT COUNT(id) FROM table WHERE someColumn > 100。在某些情况下,每次传递的值都不同,有时它总是相同的。

我假设这超出了 2LC 的范围,而是需要“手动”管理(缓存查询结果,并在底层数据发生变化时使缓存失效)。

最佳答案

你是对的,这超出了 L2 缓存提供的范围。然而query cache会成功的。

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

另见:

关于hibernate - Hibernate 的二级缓存是否/可以用于 COUNT() 操作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8712066/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com