Dans le contexte de Quarkus et de son intégration avec Mutiny, la différence entre
Multi<TaskEntity> et Uni<TaskEntity> repose sur la nature des flux réactifs qu'ils
représentent :
1. Uni<TaskEntity> :
○ Représente une donnée unique ou une erreur.
○ Soit il émet un élément (TaskEntity), soit une erreur, soit rien du tout.
○ C'est l'équivalent réactif d'un Optional<TaskEntity> ou d'un
CompletionStage<TaskEntity>.
○ Idéal pour des requêtes qui retournent une seule entité, comme
findById().
2. Multi<TaskEntity> :
○ Représente un flux de plusieurs éléments (TaskEntity).
○ Peut émettre 0, 1 ou plusieurs éléments et se terminer par un signal de
complétion ou une erreur.
○ C'est l'équivalent réactif d'un Stream<TaskEntity>.
○ Idéal pour récupérer une liste d'entités, comme findAll().
Exemple :
java
CopierModifier
● @GET
● @Path("/{id}")
● public Uni<TaskEntity> getTask(@PathParam("id") Long id) {
● return [Link](id); // Retourne un
Uni<TaskEntity>
● }
●
● @GET
● public Multi<TaskEntity> getAllTasks() {
● return [Link]().stream(); // Retourne un
Multi<TaskEntity>
● }
Résumé :
● Uni<T> = 0 ou 1 élément (comme un Future<T>).
● Multi<T> = 0, 1 ou plusieurs éléments (comme un Stream<T>).
Ils permettent une gestion réactive efficace des données dans Quarkus et Mutiny. 🚀
●