首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Spring Boot缓存批量和单独访问

Spring Boot缓存批量和单独访问
EN

Stack Overflow用户
提问于 2019-02-26 01:14:01
回答 1查看 499关注 0票数 2

重复访问单个实体的数据库比执行批量选择要慢得多。如何将批量选择的结果缓存到缓存中,并在以后单独访问它?

例如,我有一个Employee实体:

代码语言:javascript
复制
public class Employee {
  private Integer id;
}

我有一个存储库,可以通过批量选择或通过id单独访问它:

代码语言:javascript
复制
public class EmployeeRepository {
  public Map<Integer, Employee> retrieveByEmployeeIds(List<Integer> ids) {
    // impl
  }
  public Employee retrieveByEmployeeId(Integer id) {
    // impl
  }
}

我如何实现它,以便当retrieveByEmployeeId(Integer id)被调用时,它将检查与retrieveByEmployeeIds(List<Integer> ids)相同的缓存,如果它不存在,它将调用DB,并再次使用id存储该缓存?

EN

回答 1

Stack Overflow用户

发布于 2019-02-27 00:58:36

我以前回答过类似的问题,例如见(Spring Cache with collection of items/entities)。

本质上,您必须实现一个自定义的CacheManagerCache,这两个主要接口构成了Spring抽象的基础,如here所述。它甚至可以扩展或委托给现有的缓存提供程序,但您必须“修饰”现有的功能。

我上面提到的链接也包含示例。

希望这篇文章能给你一些关于如何处理你特定的UC的想法。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54871386

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档