PostgreSQL
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> PostgreSQL

Bộ chuyển đổi loại mã nhận dạng tổng hợp Axon

Thành thật mà nói, bạn đã đi khá sâu về vấn đề ở đây @Zon. Không chắc liệu tôi có thể giúp bạn đầy đủ hay không, nhưng tôi sẽ cố gắng hết sức.

Điểm nghiên cứu 1 rõ ràng là giải pháp thực dụng nhất để mọi thứ đi vào hoạt động ngay bây giờ. Nếu bạn nhận thấy "sự kém hiệu quả" của String so với UUID là điều mà tôi rất khó chịu. Vì vậy, nếu đây là một tuyệt đối không, nên tiến hành điều tra. Nếu không, tất nhiên nó sẽ hoàn thành công việc.

Khi nói đến điểm nghiên cứu 2 và 3, tôi tin rằng bạn đang gặp phải vấn đề với phương ngữ được sử dụng cho PostgreSQL, mặc dù tôi không chắc chắn 100% ở đây. Đặc biệt là PostgreSQL đánh dấu một vài loại "tuyệt vời", nhưng chúng không phải lúc nào cũng tự động hoạt động trong tất cả các tình huống. Tôi đang dựa trên "phỏng đoán" của mình ở đây để buộc PostgreSQL sử dụng BYTEA thay vì OID trong trường hợp bạn muốn gỡ bỏ TOAST của Postgres khả năng. Điều này trở nên đặc biệt hữu ích nếu bạn chọn sử dụng Postgres cho cửa hàng sự kiện của mình và muốn có thể thực sự xem nội dung của các sự kiện. Ví dụ, bài đăng trên blog này chỉ rõ cách giải quyết vấn đề này. Quan trọng hơn, blog này ví dụ như bài đăng cho biết cách bạn có thể điều chỉnh phương ngữ đang được sử dụng. Có lẽ điều đó có thể phục vụ bạn trong giải pháp 2 và 3?

Lựa chọn 4 trong trường hợp này là giải pháp hợp lý nhất để thực hiện. Nhưng tôi thu thập được từ phản hồi của bạn rằng bạn không làm cho nó hoạt động vào lúc này. Khi kết hợp Axon với Spring, SpringAxonAutoConfigurer (từ đó bạn đang tham khảo registerAggregateBeanDefinitions phương pháp từ tôi tin rằng) sẽ tự động kiểm tra các bean có thể định cấu hình trên Aggregate của bạn. Nó làm như vậy dựa trên các trường được xác định trong @Aggregate (tức là chú thích khuôn mẫu Mùa xuân của Axon). Cụ thể hơn, bạn có thể sử dụng repository trong trường @Aggregate để xác định tên bean của kho lưu trữ bạn muốn sử dụng.

Do đó, bạn chỉ cần có thể cung cấp GenericJpaRepository bean với identifierConverter mong muốn . Tên của bean đó không thể được chỉ định trong @Aggregate chú thích trên MyAggregate của bạn , để cấu hình tự động của Axon có thể nhận nó một cách chính xác. Hy vọng điều này sẽ giúp bạn!




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Buộc cài đặt Postgres bằng mã hóa UTF8, không phải LATIN1?

  2. EXECUTE of SELECT ... INTO không được triển khai

  3. Chèn mảng vào postgresql

  4. Thư viện không được tải:/usr/local/lib/libpq.5.4.dylib

  5. QueryHint ResultSetType.ForwardOnly không thành công với Spring JPA / EclipseLink