PostgreSQL
 sql >> Datenbank >  >> RDS >> PostgreSQL

Axon Aggregate Identifier Type Converter

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!