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 Data
Repository
是否有任何限制,当缓存中不存在条目时,不允许调用
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(或其他数据存储)中的所有条目完全是另一回事。可能,但是。。。