我寻找问题为什么 @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;
}
1条答案
按热度按时间qacovj5a1#
我测试过了,效果很好。只是,正如迪纳姆所说,你有两个不同的东西,你缓存。
方法
getAllEmployeeIdWithFullNames()
返回一个Map<String, String>
包含一个Map
在所有员工中。方法
saveEmployee(Employee employee)
返回另一个Map<String, String>
,其中包含Map
一个员工的详细信息。它们都是相同的对象类型
Map<String, String>
但它们不是一回事。我的建议是对两种不同的东西使用两个不同的缓存。一employeesDetails
缓存详细信息,以及allEmployees
所有员工的缓存。