【问题标题】:How @Cacheable works when the cached record gets updated更新缓存记录时@Cacheable 的工作原理
【发布时间】:2020-07-03 17:16:33
【问题描述】:

我指的是 link 来实现 spring 缓存。

我的场景是这样的。

@Cacheable("employees")
public List<Employee> getEmployeeDetails( int empId ){
    
}

所以我知道,一旦数据被缓存,它就不会从数据库中获取数据。在这种情况下,如果另一个服务方法 updateEmployee(int empid) 更新记录会发生什么。如何获得更新的记录?当缓存记录更新时@Cacheable 是如何工作的?

我的理解有什么问题吗?

【问题讨论】:

    标签: spring-boot java-8 spring-cache


    【解决方案1】:

    您的理解在某种程度上是正确的。 在上面的例子中,

    @Cacheable("employees")
    

    会将员工的值放入缓存中。

    如果您有一些服务方法会更新值或使对象陈旧,那么您需要使用 @CacheEvict@CachePut

    假设您有另一种拯救员工的服务方法。

    public void saveEmployee(Employee employee){
    //
    }
    

    这里你必须使用@CacheEvict 或@CachePut。

    您可以在您关注的link 中看到它们之间的区别。

    您也可以在此 SO post 中找到更多信息。

    【讨论】:

    • 非常感谢。接受这个作为我问题的答案。
    猜你喜欢
    • 2016-09-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-12-29
    • 1970-01-01
    • 2015-08-20
    • 1970-01-01
    • 2016-01-27
    相关资源
    最近更新 更多