Ehrlich gesagt bist du hier ziemlich tief in die Materie eingedrungen @Zon. Ich bin mir nicht sicher, ob ich Ihnen ausreichend helfen kann, aber ich werde es trotzdem versuchen.
Forschungspunkt 1 ist offensichtlich die pragmatischste Lösung, um die Dinge jetzt zum Laufen zu bringen. Wenn Sie die "Ineffizienz" von String
bemerken im Vergleich zu UUID
ist etwas, das mir schwerfallen würde. Wenn dies also ein absolutes Nein ist, sollte die Untersuchung fortgesetzt werden. Ansonsten erledigt es natürlich die Arbeit.
Wenn es um die Forschungspunkte 2 und 3 geht, glaube ich, dass Sie auf ein Problem mit dem Dialekt stoßen, der für PostgreSQL verwendet wird, obwohl ich mir hier nicht 100% sicher bin. Vor allem PostgreSQL schwingt ein paar „geniale“ Typen, aber diese funktionieren nicht immer automatisch in allen Szenarien. Ich stütze meine "Vermutungen" hier darauf, PostgreSQL zu zwingen, BYTEA
zu verwenden statt OID
falls Sie möchten, sollten Sie den TOAST
von Postgres herunterladen Fähigkeit. Dies ist besonders praktisch, wenn Sie sich für die Verwendung von Postgres für Ihren Veranstaltungsspeicher entscheiden und die Inhalte von Veranstaltungen tatsächlich sehen möchten. Wie man damit umgeht, beschreibt beispielsweise dieser Blogbeitrag. Noch wichtiger ist dieser Blog
post zeigt, wie Sie beispielsweise den verwendeten Dialekt anpassen können. Vielleicht könnte dir das bei den Lösungen 2 und 3 helfen?
Option 4 sollte in diesem Fall die logischste Lösung sein. Aber ich entnehme Ihrer Antwort, dass Sie es im Moment nicht zum Laufen gebracht haben. Beim Kombinieren von Axon mit Spring wird der SpringAxonAutoConfigurer
(von dem Sie auf die registerAggregateBeanDefinitions
verweisen Methode von I believe) sucht automatisch nach konfigurierbaren Beans auf Ihrem Aggregate. Dies geschieht basierend auf Feldern, die in @Aggregate
definiert sind (dh Axon's Spring Stereotype Annotation). Genauer gesagt können Sie das repository
verwenden Feld im @Aggregate
um den Bean-Namen des Repositorys zu definieren, das Sie verwenden möchten.
Sie sollten also einfach ein GenericJpaRepository
bereitstellen können Bean mit dem gewünschten identifierConverter
. Der Name dieser Bean kann dann im @Aggregate
angegeben werden Anmerkung auf Ihrem MyAggregate
, damit die automatische Konfiguration von Axon es korrekt aufnehmen kann. Hoffe das hilft dir weiter!