【发布时间】:2019-07-19 03:54:36
【问题描述】:
为单个实体重复访问数据库比进行批量选择要慢得多。如何将批量选择的结果缓存到缓存中,然后单独访问?
例如,我有一个 Employee 实体:
public class Employee {
private Integer id;
}
我有可以通过批量选择或单独通过 id 访问它的存储库:
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) 相同的缓存,如果它不存在,它将调用数据库,并将缓存存储为又是身份证?
【问题讨论】: