Spring boot 尝试使用GemfireRepository查找实体时未调用CacheLoader
尝试使用Spring boot 尝试使用GemfireRepository查找实体时未调用CacheLoader,spring-boot,caching,gemfire,spring-data-gemfire,Spring Boot,Caching,Gemfire,Spring Data Gemfire,尝试使用GemfireRepository查找实体时,未调用CacheLoader 作为一种解决方案,我使用区域进行查找,它调用缓存加载程序。所以想知道Spring DataRepository是否有任何限制,当缓存中不存在条目时,不允许调用CacheLoader 还有,还有其他选择吗?因为我还有一个场景,其中我的缓存键是id1和id2的组合,我希望基于id1获取所有条目。如果缓存中没有条目,那么它将调用CacheLoader从Cassandra store加载所有条目。在使用SD存储库抽象(以
GemfireRepository
查找实体时,未调用CacheLoader
作为一种解决方案,我使用区域
进行查找,它调用缓存加载程序
。所以想知道Spring DataRepository
是否有任何限制,当缓存中不存在条目时,不允许调用CacheLoader
还有,还有其他选择吗?因为我还有一个场景,其中我的缓存键是id1和id2的组合,我希望基于id1获取所有条目。如果缓存中没有条目,那么它将调用
CacheLoader
从Cassandra store加载所有条目。在使用SD存储库抽象(以及SDG的存储库扩展)时,SDG中没有任何限制这将阻止调用CacheLoader
,只要CacheLoader
在目标区域上正确注册即可。一旦控制权移交给GemFire/Geode完成数据访问操作(CRUD),SDG将无法控制
但是,您应该知道GemFire/Geode只在gets上调用CacheLoaders
(即Region.get(key)
操作),从不在(OQL)查询上调用。OQL查询使用应用程序存储库界面中声明的@query
带注释的方法从派生查询方法或自定义的用户定义查询方法调用
注意:有关更多详细信息,请参阅ApacheGeode和
对于简单调用,调用堆栈如下所示
然后,(从)
作为示例,为了说明此行为,我将添加到SDG测试套件中作为的一部分。如有必要,您可以在此JIRA通知单中提供其他反馈
干杯 注意,从CacheLoader
加载Cassandra(或其他数据存储)中的所有条目完全是另一回事。可能,但是。。。