如果没有结果,Quarkus Mutiny Multi 异常处理

Quarkus Mutiny Multi Exception handling if no result

如果多流没有return任何东西(多流结果为空/空),我需要抛出一个特定的异常;

这是我的存储库方法:

return reactiveRepository.findAllById(idList);

哪个return是

Multi<WhateverModel>

如果上述存储库方法没有 return 任何内容/空/空流,我有没有办法抛出异常?

我试过过滤器,但如果底层回购方法没有 return 结果,它不会被调用。

您可以在完成时检查流是否为空:

stream.onCompletion().ifEmpty().continueWith("a", "b", "c");

这可能正是您所需要的。 您还可以检查您是否在超时前收到了物品:

stream.ifNoItem().after(timeout)
    .recoverWithMulti(Multi.createFrom().items("a", "b", "c"))

但是,并不是说 Multi 可能不是您要查找的内容。在处理关系数据库时,通常最好使用 Uni<List<?>>,因为它们的协议不支持流式传输,而且基本上,它需要通过保持连接打开来在应用程序中模拟流。