Ärligt talat, du har gått ganska djupt i frågan här @Zon. Osäker på om jag kan hjälpa dig tillräckligt, men jag kommer att prova det oavsett.
Forskningspunkt 1 är uppenbarligen den mest pragmatiska lösningen för att få saker att fungera just nu. Om du kommer att märka "ineffektiviteten" hos String
jämfört med UUID
är något jag skulle bli hårt pressad över. Så om detta är ett absolut nej nej, bör utredningen fortsätta. Annars gör det naturligtvis jobbet gjort.
När det gäller forskningspunkter 2 och 3 tror jag att du stöter på ett problem med dialekten som används för PostgreSQL, även om jag inte är 100% säker här. Särskilt PostgreSQL har ett par "häftiga" typer, men dessa fungerar inte alltid automatiskt i alla scenarier. Jag baserar mina "gissningar" här på att tvinga PostgreSQL att använda BYTEA
istället för OID
om du vill bör du lägga ner Postgres TOAST
förmåga. Detta blir särskilt praktiskt om du väljer att använda Postgres för din evenemangsbutik och vill kunna se innehållet i evenemang. Det här blogginlägget anger till exempel hur man ska hantera detta. Ännu viktigare är den här bloggen
inlägget visar hur du till exempel kan justera dialekten som används. Kanske kan det tjäna dig i lösning 2 och 3?
Alternativ 4 bör i detta fall vara den mest logiska lösningen att ta. Men jag förstår av ditt svar att du inte fick det att fungera för tillfället. När du kammar Axon med Spring, SpringAxonAutoConfigurer
(från vilken du hänvisar till registerAggregateBeanDefinitions
metod från jag tror) kommer automatiskt att söka efter konfigurerbara bönor på ditt Aggregate. Det gör det baserat på fält definierade i @Aggregate
(dvs. Axon's Spring stereotyp kommentar). Mer specifikt kan du använda repository
fältet i @Aggregate
för att definiera bönnamnet för arkivet du vill använda.
Du bör alltså helt enkelt kunna tillhandahålla ett GenericJpaRepository
bean med önskad identifierConverter
. Namnet på bönan kan sedan anges i @Aggregate
anteckning på din MyAggregate
, så att Axons autokonfiguration kan hämta den korrekt. Hoppas detta hjälper dig!