PostgreSQL
 sql >> база данни >  >> RDS >> PostgreSQL

Преобразувател на тип агрегатен идентификатор на Axon

Честно казано, навлязохте доста дълбоко по въпроса тук @Zon. Не съм сигурен дали мога да ви помогна достатъчно, но въпреки това ще опитам.

Изследователска точка 1 очевидно е най-прагматичното решение, за да накарате нещата да работят точно сега. Ако искате да забележите "неефективността" на String в сравнение с UUID е нещо, за което трудно бих се притиснал. Така че, ако това е абсолютно не, разследването трябва да продължи. В противен случай, разбира се, върши работата.

Що се отнася до изследователски точки 2 и 3, вярвам, че срещате проблем с диалекта, използван за PostgreSQL, въпреки че тук не съм 100% сигурен. Особено PostgreSQL размахва няколко "страхотни" типа, но те не винаги работят автоматично във всички сценарии. Базирам „догадките“ си тук върху принуждаването на PostgreSQL да използва BYTEA вместо OID в случай че искате да намалите TOAST на Postgres способност. Това става особено удобно, ако решите да използвате Postgres за вашия магазин за събития и искате да можете действително да виждате съдържанието на събитията. Тази публикация в блога например уточнява как да се справите с това. По-важното е, че този блог публикацията показва как бихте могли например да коригирате използвания диалект. Може би това може да ви послужи при решения 2 и 3?

Вариант 4 в този случай трябва да бъде най-логичното решение. Но от отговора ви разбирам, че не сте го накарали да работи в момента. Когато комбинирате Axon със Spring, SpringAxonAutoConfigurer (от който препращате registerAggregateBeanDefinitions метод от вярвам) автоматично ще проверява за конфигурируеми bean-ове на вашия Aggregate. Това се прави въз основа на полета, дефинирани в @Aggregate (т.е. стереотипната анотация на Axon's Spring). По-конкретно, можете да използвате repository поле в @Aggregate за да дефинирате името на компонента на хранилището, което искате да използвате.

Следователно трябва просто да можете да предоставите GenericJpaRepository bean с желания identifierConverter . След това името на този компонент може да бъде указано в @Aggregate анотация във вашия MyAggregate , така че автоматичната конфигурация на Axon да може да го вземе правилно. Надявам се това да ви помогне!




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как да предам параметър към sql 'in' израз?

  2. Преобразувайте bytea в двойна точност в PostgreSQL

  3. Различни записи с обединения и ред

  4. Postgresql префикс заместващ знак за пълен текст

  5. docker-compose postgres рестартиране след изпълнение на скриптове в docker-entrypoint-initdb.d