如果没有结果,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<?>>
,因为它们的协议不支持流式传输,而且基本上,它需要通过保持连接打开来在应用程序中模拟流。
如果多流没有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<?>>
,因为它们的协议不支持流式传输,而且基本上,它需要通过保持连接打开来在应用程序中模拟流。