0

我有一项通过 、 或 搜索用户idemail服务username。此外,它可以更新或删除用户id

@Service
public class UserService{


  public User getUserByEmail(String email) { ... }


  public User getUserByUsername(String usern) { ... }


  @Cacheable(cacheNames = "user", key = "#id")
  public User getUserById(Long id) { ... }


  @CachePut(cacheNames = "user", key = "#id")
  public User updateUser(Long id, String name, String phone) { ... }


  @CacheEvict(cacheNames = "user", key = "#id")
  public User deleteUserById(Long id) { ... }


}

缓存实现适用于当前的实现。

现在,我应该怎么做才能实现缓存getUserByEmailgetUserByUsername功能?由于所有 getter 函数都指向同一个缓存表user,有没有办法使用多个键(id、电子邮件和用户名)维护缓存表,以便我可以使用任何键来获取缓存数据?

如果可能,这将如何影响我的@CachePut 和@CacheEvict?

4

0 回答 0