小编Ibt*_*ama的帖子

@Cacheable注解,在不同的方法中使用相同的值

我正在尝试使用 Spring @Cacheable 注释。

 @Cacheable(value="users")          
public List<User> findAll() {
    System.out.println("Looking for All users : ");
    return userRepository.findAll();
}

@Override
@Cacheable(value="users")  
public User findOne(String userId) {
    System.out.println("Looking for user : "+ userId);
    return userRepository.findById(userId).get();
}
Run Code Online (Sandbox Code Playgroud)

当我执行第一个方法时,List<User>我得到:

  • 第一次:从数据库中选择所有字段
  • 第二次:从缓存中选择所有字段
  • 第三次:从缓存中选择所有字段

到目前为止这都很好。

当我执行第二种方法时,findOne(String userId)我得到的结果是:

  • 第一次:从数据库中选择特定字段
  • 第二次:从缓存中选择特定字段
  • 第三次:从缓存中选择特定字段

这又好了。

当我执行第一个方法时,List<User>我得到:

从缓存中选择所有字段数据

问题:这两种方法(和 )如何具有相同的缓存名称,但返回不同的结果。List<User>findOne(String userId)

caching ehcache spring-cache cacheapi

4
推荐指数
1
解决办法
2375
查看次数

标签 统计

cacheapi ×1

caching ×1

ehcache ×1

spring-cache ×1