Honestamente, has profundizado mucho en el asunto @Zon. No estoy seguro de si puedo ayudarte lo suficiente, pero lo intentaré de todos modos.
El punto de investigación 1 es obviamente la solución más pragmática para hacer que las cosas funcionen ahora mismo. Si vas a notar la "ineficacia" de String
comparado con UUID
es algo por lo que estaría en apuros. Entonces, si esto es un no absoluto, se debe continuar con la investigación. De lo contrario, hace el trabajo, por supuesto.
Cuando se trata de investigar los puntos 2 y 3, creo que tiene un problema con el dialecto que se usa para PostgreSQL, aunque no estoy 100% seguro aquí. Especialmente PostgreSQL muestra un par de tipos "increíbles", pero estos no siempre funcionan automáticamente en todos los escenarios. Estoy basando mis "conjeturas" aquí en obligar a PostgreSQL a usar BYTEA
en lugar de OID
en caso de que quiera, debe bajar TOAST
de Postgres capacidad. Esto se vuelve especialmente útil si opta por usar Postgres para su tienda de eventos y desea poder ver realmente el contenido de los eventos. Esta publicación de blog, por ejemplo, especifica cómo lidiar con esto. Más importante aún, este blog
La publicación muestra cómo podría, por ejemplo, ajustar el dialecto que se está utilizando. ¿Quizás eso podría servirte en las soluciones 2 y 3?
En este caso, la opción 4 debería ser la solución más lógica. Pero deduzco de su respuesta que no consiguió que funcionara en este momento. Al combinar Axon con Spring, el SpringAxonAutoConfigurer
(desde donde se refiere a registerAggregateBeanDefinitions
método de Creo) comprobará automáticamente si hay beans configurables en su Agregado. Lo hace en función de los campos definidos en el @Aggregate
(es decir, la anotación del estereotipo Spring de Axon). Más específicamente, puedes usar el repository
campo en @Aggregate
para definir el nombre del bean del repositorio que desea utilizar.
Por lo tanto, simplemente debería poder proporcionar un GenericJpaRepository
bean con el identifierConverter
deseado . El nombre de ese bean puede especificarse en @Aggregate
anotación en su MyAggregate
, para que la configuración automática de Axon pueda detectarlo correctamente. ¡Espero que esto te ayude!