【问题标题】:Handling Java 8 Optional with Spring cache使用 Spring 缓存处理 Java 8 Optional
【发布时间】:2016-08-19 01:29:45
【问题描述】:

考虑到可以插入和检索对象并使用 Spring 缓存抽象的服务类,我如何以返回 Optional 的方式注释方法?

class MyServiceImpl implements MyService {

    private static final String CACHE_NAME = "itemCache";      

    @Override
    @Cacheable(CACHE_NAME)
    public Optional<Item> findById(Long id) {
        // access the repository to retrieve the item
    }

    @Override
    @CachePut(cacheNames = CACHE_NAME, key = "#item.id")
    public Item insertItem(Item item) {
        ...
    }

}

在上面的示例中,ClassCastException 被抛出,因为insertItemItem 实例放入缓存中,而findById 期望Optional 可能包含Item 实例。

【问题讨论】:

  • 我们还不支持Optional。我想我们可以这样做,请创建一个问题。
  • 感谢您的回复。我刚刚创建了jira.spring.io/browse/SPR-14230
  • 哇,我现在正在度假,而 Juergen 已经实现了它。那很快;-)

标签: java spring spring-cache


【解决方案1】:

只是对评论的跟进,以便对此给出明确的答案。我们从 Spring Framework 4.3 RC2 开始做

【讨论】:

  • 我们支持 Stream 吗?
  • 这是一个不同的问题(也是完全不同的事情)。答案是否定的。
  • 谢谢尼科尔爵士。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-04-23
  • 1970-01-01
  • 2023-03-31
  • 2019-10-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多