findAll() 方法总是返回数据

问题描述 投票:0回答:1

我使用 spring data jpa 中的 findAll() 方法返回订单列表,并将它们包装在Optional类中。在方法实现中,我检查可选中是否有数据以返回它或引发运行时异常。我的表是空的,并且我仍然得到 200 代码状态和空列表,为什么没有抛出异常。总是执行 if 块?

我尝试更改条件以检查 list.get().size()>0,并且我预计会出现运行时异常,但结果是带有空列表的消息(可用订单)。

java spring-boot spring-data-jpa
1个回答
0
投票

当您使用 Spring Data JPA 的 findAll() 方法时,返回空列表是预期行为,而不是异常情况。您不需要将 findAll() 方法包装在Optional 类中,因为该方法直接返回一个列表。如果列表中没有数据,则返回空列表。如果要在列表为空时抛出异常,则应检查 findAll() 的结果,如果列表为空,则抛出 RuntimeException。这样你就可以通过检查列表是否为空来处理异常情况。

也许我理解错了。您能通过代码提供更多详细信息吗?

谢谢你。

© www.soinside.com 2019 - 2024. All rights reserved.