I vår teste av Nikita med PostgreSQL, så er alle UUID-er i databasen av datatype varchar(36), mens det er raskere og mer kompakt å bruke PostgreSQL-typen UUID i stedet. Hva er årsaken til at varchar(36) brukes i dag?
Jeg mistenker dette kan byttes med følgende kodeendring, som ennå ikke er testet:
diff --git a/src/main/java/app/domain/noark5/SystemIdEntity.java b/src/main/java/app/domain/noark5/SystemIdEntity.java index 666f3fa0a..7a3ef4951 100644 --- a/src/main/java/app/domain/noark5/SystemIdEntity.java +++ b/src/main/java/app/domain/noark5/SystemIdEntity.java @@ -25,7 +25,6 @@ import static app.utils.constants.N5ResourceMappings.SYSTEM_ID_ENG; import static jakarta.persistence.CascadeType.REMOVE; import static jakarta.persistence.DiscriminatorType.STRING; import static jakarta.persistence.InheritanceType.JOINED; -import static java.sql.Types.VARCHAR; import static org.hibernate.annotations.UuidGenerator.Style.TIME;
@@ -50,7 +49,6 @@ public class SystemIdEntity @Id @GeneratedValue(generator = "uuid-gen") @Column(name = SYSTEM_ID_ENG, updatable = false, nullable = false) - @JdbcTypeCode(VARCHAR) @UuidGenerator(style = TIME) private UUID systemId;