Honnêtement, vous êtes allé assez loin sur la question ici @Zon. Je ne sais pas si je peux vous aider suffisamment, mais je vais quand même essayer.
Le point de recherche 1 est évidemment la solution la plus pragmatique pour faire fonctionner les choses dès maintenant. Si vous allez remarquer "l'inefficacité" de String
par rapport à UUID
est quelque chose que j'aurais du mal à faire. Donc, si c'est un non non absolu, l'enquête doit se poursuivre. Sinon, le travail est bien sûr fait.
En ce qui concerne les points de recherche 2 et 3, je pense que vous rencontrez un problème avec le dialecte utilisé pour PostgreSQL, bien que je ne sois pas certain à 100% ici. En particulier, PostgreSQL brandit quelques types "géniaux", mais ceux-ci ne fonctionnent pas toujours automatiquement dans tous les scénarios. Je base mes "conjectures" ici sur le fait de forcer PostgreSQL à utiliser BYTEA
au lieu de OID
au cas où vous voudriez supprimer TOAST
de Postgres aptitude. Cela devient particulièrement pratique si vous choisissez d'utiliser Postgres pour votre magasin d'événements et que vous souhaitez pouvoir voir le contenu des événements. Ce billet de blog précise par exemple comment gérer cela. Plus important encore, ce blog
post montre comment vous pouvez par exemple ajuster le dialecte utilisé. Peut-être que cela pourrait vous servir dans les solutions 2 et 3 ?
L'option 4 devrait dans ce cas être la solution la plus logique à adopter. Mais je déduis de votre réponse que vous ne l'avez pas fait fonctionner pour le moment. Lors de la combinaison d'Axon avec Spring, le SpringAxonAutoConfigurer
(dont vous faites référence au registerAggregateBeanDefinitions
méthode de je crois) vérifiera automatiquement les beans configurables sur votre Aggregate. Il le fait en fonction des champs définis dans le @Aggregate
(c'est-à-dire l'annotation du stéréotype Axon's Spring). Plus précisément, vous pouvez utiliser le repository
champ dans le @Aggregate
pour définir le nom du bean du référentiel que vous souhaitez utiliser.
Vous devriez donc simplement pouvoir fournir un GenericJpaRepository
bean avec le identifierConverter
souhaité . Le nom de ce bean peut ensuite être spécifié dans le @Aggregate
annotation sur votre MyAggregate
, afin que la configuration automatique d'Axon puisse le récupérer correctement. J'espère que cela vous aidera !