PostgreSQL
 sql >> Base de Dados >  >> RDS >> PostgreSQL

Conversor de Tipo de Identificador Agregado Axon


Honestamente, você se aprofundou bastante no assunto aqui @Zon. Não tenho certeza se posso ajudá-lo o suficiente, mas vou tentar de qualquer maneira.

O ponto de pesquisa 1 é obviamente a solução mais pragmática para fazer as coisas funcionarem agora. Se você vai notar a "ineficiência" de String comparado com UUID é algo que eu seria duramente pressionado. Portanto, se isso for um absoluto não, não, a investigação deve prosseguir. Caso contrário, ele faz o trabalho, é claro.

Quando se trata dos pontos de pesquisa 2 e 3, acredito que você esteja encontrando um problema com o dialeto usado para o PostgreSQL, embora eu não tenha 100% de certeza aqui. Especialmente o PostgreSQL apresenta alguns tipos "incríveis", mas nem sempre funcionam automaticamente em todos os cenários. Estou baseando minha "adivinhação" aqui em forçar o PostgreSQL a usar BYTEA em vez de OID caso você queira baixar o TOAST" do Postgres capacidade. Isso se torna especialmente útil se você optar por usar o Postgres para sua loja de eventos e quiser realmente ver o conteúdo dos eventos. Esta postagem de blog, por exemplo, especifica como lidar com isso. Mais importante, este blog post mostra como você pode, por exemplo, ajustar o dialeto que está sendo usado. Talvez isso possa atendê-lo nas soluções 2 e 3?

A opção 4 deve, neste caso, ser a solução mais lógica a tomar. Mas deduzo de sua resposta que você não conseguiu fazê-lo funcionar no momento. Ao combinar Axon com Spring, o SpringAxonAutoConfigurer (do qual você está se referindo a registerAggregateBeanDefinitions método de eu acredito) verificará automaticamente os beans configuráveis ​​no seu Aggregate. Ele faz isso com base em campos definidos no @Aggregate (ou seja, anotação de estereótipo Spring da Axon). Mais especificamente, você pode usar o repository campo no @Aggregate para definir o nome do bean do repositório que você deseja usar.

Você deve simplesmente ser capaz de fornecer um GenericJpaRepository bean com o identifierConverter desejado . O nome desse bean pode ser especificado no @Aggregate anotação em seu MyAggregate , para que a configuração automática do Axon possa captá-lo corretamente. Espero que isto te ajude!