Axon Framework mit Postgresql: Die Verwendung von Bytea anstelle von OID funktioniert nichtJava

Java-Forum
Anonymous
 Axon Framework mit Postgresql: Die Verwendung von Bytea anstelle von OID funktioniert nicht

Post by Anonymous »

Ich verwende Axon Framework 4.12.1 mit Postgresql (17), Flyway und Spring Boot (3.5.6).
Den Empfehlungen folgend habe ich die SQL-Migrationsdateien geändert, um Bytea anstelle von OID zu verwenden, und die entsprechende orm.xml konfiguriert.

Code: Select all

















































Bei Verwendung der App schlägt sie jetzt mit

org.hibernate.Exception.SQLGrammarException: Could notexecute
Anweisung [FEHLER: Spalte „meta_data“ ist vom Typ Bytea, aber Ausdruck
ist vom Typ Bigint fehl. Hinweis: Sie müssen den
Ausdruck umschreiben oder umwandeln. Position: 179] [insert into domain_event_entry
(aggregate_identifier,event_identifier,meta_data,payload,payload_revision,payload_type,sequence_number,time_stamp,type,global_index)
values (?,?,?,?,?,?,?,?,?,?)]

domain Definition der Ereigniseintragstabelle:

Code: Select all

create table public.domain_event_entry
(
global_index         bigserial
constraint pk_domain_event_entry
primary key,
aggregate_identifier varchar(255) not null,
sequence_number      bigint       not null,
type                 varchar(255),
event_identifier     varchar(255) not null
constraint uk_domain_event_entry_identifier
unique,
meta_data            bytea,
payload              bytea        not null,
payload_revision     varchar(255),
payload_type         varchar(255) not null,
time_stamp           varchar(255) not null,
constraint uk_domain_event_entry
unique (aggregate_identifier, sequence_number)
);

create unique index idx_domain_event_entry_aggregate_seq
on public.domain_event_entry (aggregate_identifier, sequence_number);

create unique index idx_domain_event_entry_event_id
on public.domain_event_entry (event_identifier);

application.properties (Auszug):

Code: Select all

spring.datasource.driverClassName=org.postgresql.Driver
spring.jpa.database-platform=com.haufe.zeva.infrastructure.persistence.ByteaEnforcedPostgresSQLDialect # the dialect I copied from the documentation
spring.jpa.generate-ddl=false
spring.jpa.hibernate.ddl-auto=none
spring.jpa.properties.hibernate.hbm2ddl.auto=none
spring.jpa.properties.jakarta.persistence.schema-generation.database.action=none
spring.jpa.properties.jakarta.persistence.schema-generation.create-source=none
spring.jpa.properties.jakarta.persistence.schema-generation.drop-source=none
spring.jpa.hibernate.naming.physical-strategy=org.hibernate.boot.model.naming.PhysicalNamingStrategyStandardImpl
spring.jpa.hibernate.naming.strategy=org.hibernate.cfg.EJB3NamingStrategy
spring.jpa.properties.hibernate.jdbc.lob.non_contextual_creation=true
spring.jpa.open-in-view=false
spring.jpa.properties.hibernate.multiTenancy=DISCRIMINATOR
spring.jpa.properties.hibernate.tenant_identifier_resolver=com.som.path.TenantResolver
spring.jpa.properties.hibernate.hbm2ddl.halt_on_error=false
# axon framework
axon.axonserver.enabled=false
Wie funktioniert die Konfiguration mit bytea?

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post