我的缓存未使用@cacheput注解更新

xytpbqjk  于 2021-06-30  发布在  Java
关注(0)|答案(1)|浏览(316)

我寻找问题为什么 @CachePut 没有在我的缓存中插入数据,但我没有让它工作。

@Cacheable(value = "employee")
public Map<String, String> getAllEmployeeIdWithFullNames() {
    return employeeRepo.getAllEmployeeIdWithFullNames();
}

我曾经 @CachePut 如下所示:

@CachePut(value = "employee") 
Map<String, String> saveEmployee(Employee employee) {
    Map<String, String> employeeDetail = new HashMap<>();
    employeeRepo.save(employee);
    employeeDetail.put(employee.getUserId(), employee.getDisplayName());
    return employeeDetail;
}
qacovj5a

qacovj5a1#

我测试过了,效果很好。只是,正如迪纳姆所说,你有两个不同的东西,你缓存。
方法 getAllEmployeeIdWithFullNames() 返回一个 Map<String, String> 包含一个 Map 在所有员工中。
方法 saveEmployee(Employee employee) 返回另一个 Map<String, String> ,其中包含 Map 一个员工的详细信息。
它们都是相同的对象类型 Map<String, String> 但它们不是一回事。我的建议是对两种不同的东西使用两个不同的缓存。一 employeesDetails 缓存详细信息,以及 allEmployees 所有员工的缓存。

相关问题