TP4 - Référentiel d’agrégats
1. Résumé
Lorsque vous utilisez Event Sourcing sans CQRS, la seule façon de trouver un agrégat est de le « réhydrater » à partir de la liste des événements qu’il a publiés. Cette opération de recherche ne peut être indexée que par clé primaire.
Dans ce TP, nous allons implémenter la recherche par référence pour les agrégats du contexte Cuisine.
Nous allons réaliser deux scenarios :
-
Nous allons prendre en charge la recherche d’une commande
CommandeCuisineà partir de sa référenceReferenceCommandeCuisine -
Nous allons prendre en charge la recherche d’une
Pizzaà partir de sa référenceReferencePizza.
Vous pouvez exécuter com.pizzeria.suites.Lab4Suite pour vérifier votre progression.
2. Instructions.
-
Notre implémentation générique
DepotEvenementsEnCoursDeTraitementdépend principalement de deux méthodes qui doivent exister dans chaque Agrégat :-
identite() -
fonctionAccumulateur()
-
-
Les implémentations de ces deux méthodes dans les classes
CommandeCuisineetPizzasont défectueuses. Vous devez les corriger. -
L’implémentation de
identite()est assez simple. Utilisez le générateur pour l’agrégat afin de construire une nouvelle instance, en définissant chaque propriété sur sa valeurIDENTITE, puis renvoyez-la. -
L’implémentation de
fonctionAccumulateur()est correcte, mais vous devrez corriger l’objetAccumulateurqu’elle renvoie en implémentant sa méthodeapply(). -
Pour implémenter correctement la méthode
apply(), vous devez vérifier le type de l'`EvenementAgregat` passé en argument et, pour chaque type d’événement publié pour cetAgrégat, effectuer la transformation d’état appropriée.. -
Si vous cherchez des indications, essayez de consulter les implémentations
apply()dans les contextes Commandes et Paiements.