为什么 OrElseGet 似乎没有被调用

我正在用 SpringBoot 构建一个 REST API,并决定在 SpringBoot 的最新版本中构建它。


我遇到的问题是,由于某种原因,我的代码似乎没有达到OrElseGet,或者我不知道如何处理这些Optional东西。


我想要做的是200在数据库中找到对象时返回状态代码和实体,404如果未找到则返回状态代码。


但是,当指定无效代码时,我null在响应正文中获取字符串和状态代码 200。


这是我的代码:


@GetMapping("/{codigo}")

public ResponseEntity<Optional<Categoria>> searchByCode(@PathVariable Long codigo) {


    return Optional

            .ofNullable( categoriaRepository.findById(codigo) )

            .map(cat-> ResponseEntity.ok().body(cat))

            .orElseGet(() -> ResponseEntity.notFound().build()); 

}

任何帮助,将不胜感激。


隔江千里
浏览 135回答 1
1回答
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java