代码之家  ›  专栏  ›  技术社区  ›  Sri

如何使用spring缓存基于主键缓存实体列表

  •  1
  • Sri  · 技术社区  · 9 年前

    我想缓存repository类的响应,该类具有以下方法:

    @Cacheable(cacheNames = "books", key="#id")
    Book findById(Long Id);
    
    @CacheEvict(cacheNames = "books", key = "#id")
    void deleteById(Long id);
    
    @Cacheable(cacheNames = "books", key="#book.id")
    Book save(Book book);
    
    @Cacheable("books")
    List<Book> findAll();
    

    findAll() 方法,其他正在按预期工作。

    如何制作 填充 书 缓存 书身份证件

    1 回复  |  直到 9 年前
        1
  •  4
  •   Matthias    7 年前

    您需要提供一个定制的 CacheManager 和 Cache 为您的缓存提供程序(例如Ehcache、Redis或Hazelcast)实施。

    Spring的缓存抽象 不会将缓存的方法数组/集合类型返回值拆分为目标缓存中的单独条目。你必须自己处理。

    请参阅我最后的回复 nearly identical question