gpt4 book ai didi

spring - 在缓存中找不到但不缓存结果时,如何使@Cacheable 返回null?

转载 作者:行者123 更新时间:2023-12-04 23:45:30 26 4
gpt4 key购买 nike

遵循@Cacheable 注释

@Cacheable(value="books", key="#isbn")
public Book findBook(ISBN isbn, boolean checkWarehouse, boolean includeUsed)
  • 根据键
  • 在缓存中查找
  • 如果找到,则从缓存中返回结果
  • 如果没有找到评估方法
  • 更新缓存
  • 返回结果

  • 这样下次使用相同的参数调用此方法时,它将从缓存中获取。

    我想要的只是
  • 根据键
  • 在缓存中查找
  • 如果找到,则从缓存中返回结果
  • 如果没有找到返回 null

  • 我不想在缓存未命中的情况下更新缓存,有没有办法使用 spring 注释来做到这一点

    最佳答案

    这是我最终得到的,诀窍是使用“除非”对我们有利

    @Cacheable(value="books", key="#isbn", unless = "#result == null")
    public Book findBookFromCache(ISBN isbn, boolean checkWarehouse, boolean includeUsed)
    {
    return null;
    }

    这个方法
  • 基于键
  • 在缓存中查找
  • 如果找到,则从缓存中返回结果
  • 如果未找到,则评估返回空值的方法
  • 返回值与除非条件匹配(总是返回真)
  • 空值不会被缓存
  • null 值返回给调用者
  • 关于spring - 在缓存中找不到但不缓存结果时,如何使@Cacheable 返回null?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29801844/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com