diff --git a/dbrepo-metadata-db/setup-schema.sql b/dbrepo-metadata-db/setup-schema.sql
index fe452045ca24d999b88f4554bf66b97b3b7101a3..972216ac0c6c2d28f654e3ea41febbbe7adf1c13 100644
--- a/dbrepo-metadata-db/setup-schema.sql
+++ b/dbrepo-metadata-db/setup-schema.sql
@@ -151,7 +151,7 @@ CREATE TABLE IF NOT EXISTS `mdb_columns`
     cName            VARCHAR(100),
     internal_name    VARCHAR(100) NOT NULL,
     alias            VARCHAR(100),
-    Datatype         ENUM ('char','varchar','binary','varbinary','tinyblob','tinytext','text','blob','mediumtext','mediumblob','longtext','longblob','enum','set','bit','tinyint','bool','smallint','mediumint','int','bigint','float','double','decimal','date','datetime','timestamp','time','year'),
+    Datatype         ENUM ('CHAR','VARCHAR','BINARY','VARBINARY','TINYBLOB','TINYTEXT','TEXT','BLOB','MEDIUMTEXT','MEDIUMBLOB','LONGTEXT','LONGBLOB','ENUM','SET','BIT','TINYINT','BOOL','SMALLINT','MEDIUMINT','INT','BIGINT','FLOAT','DOUBLE','DECIMAL','DATE','DATETIME','TIMESTAMP','TIME','YEAR'),
     length           INT          NULL,
     ordinal_position INTEGER      NOT NULL,
     is_primary_key   BOOLEAN      NOT NULL,
@@ -328,7 +328,7 @@ CREATE TABLE IF NOT EXISTS `mdb_view`
 CREATE TABLE IF NOT EXISTS `mdb_banner_messages`
 (
     id            bigint                            NOT NULL AUTO_INCREMENT,
-    type          ENUM ('error', 'warning', 'info') NOT NULL default 'info',
+    type          ENUM ('ERROR', 'WARNING', 'INFO') NOT NULL default 'INFO',
     message       TEXT                              NOT NULL,
     link          TEXT                              NULL,
     link_text     VARCHAR(255)                      NULL,
@@ -371,11 +371,11 @@ CREATE TABLE IF NOT EXISTS `mdb_identifiers`
     vid               bigint,
     publisher         VARCHAR(255)                        NOT NULL,
     language          VARCHAR(2),
-    visibility        ENUM ('self', 'everyone')           NOT NULL default 'everyone',
+    visibility        ENUM ('SELF', 'EVERYONE')           NOT NULL default 'EVERYONE',
     publication_year  INTEGER                             NOT NULL,
     publication_month INTEGER,
     publication_day   INTEGER,
-    identifier_type   ENUM ('database', 'subset', 'view') NOT NULL,
+    identifier_type   ENUM ('DATABASE', 'SUBSET', 'VIEW') NOT NULL,
     query             TEXT,
     query_normalized  TEXT,
     query_hash        VARCHAR(255),
@@ -406,7 +406,7 @@ CREATE TABLE IF NOT EXISTS `mdb_identifier_titles`
     id         bigint NOT NULL AUTO_INCREMENT,
     pid        bigint NOT NULL,
     title      text   NOT NULL,
-    title_type ENUM ('alternative_title', 'subtitle', 'translated_title', 'other'),
+    title_type ENUM ('ALTERNATIVE_TITLE', 'SUBTITLE', 'TRANSLATED_TITLE', 'OTHER'),
     language   VARCHAR(2),
     PRIMARY KEY (id),
     FOREIGN KEY (pid) REFERENCES mdb_identifiers (id)
@@ -418,7 +418,7 @@ CREATE TABLE IF NOT EXISTS `mdb_identifier_funders`
     pid                    bigint       NOT NULL,
     funder_name            VARCHAR(255) NOT NULL,
     funder_identifier      TEXT,
-    funder_identifier_type ENUM ('crossref_funder_id', 'grid', 'isni', 'ror', 'other'),
+    funder_identifier_type ENUM ('CROSSREF_FUNDER_ID', 'GRID', 'ISNI', 'ROR', 'OTHER'),
     scheme_uri             text,
     award_number           VARCHAR(255),
     award_title            text,
@@ -432,7 +432,7 @@ CREATE TABLE IF NOT EXISTS `mdb_identifier_descriptions`
     id               bigint NOT NULL AUTO_INCREMENT,
     pid              bigint NOT NULL,
     description      text   NOT NULL,
-    description_type ENUM ('abstract', 'methods', 'series_information', 'table_of_contents', 'technical_info', 'other'),
+    description_type ENUM ('ABSTRACT', 'METHODS', 'SERIES_INFORMATION', 'TABLE_OF_CONTENTS', 'TECHNICAL_INFO', 'OTHER'),
     language         VARCHAR(2),
     PRIMARY KEY (id),
     FOREIGN KEY (pid) REFERENCES mdb_identifiers (id)
@@ -457,13 +457,13 @@ CREATE TABLE IF NOT EXISTS `mdb_identifier_creators`
     given_names                       text,
     family_name                       text,
     creator_name                      VARCHAR(255) NOT NULL,
-    name_type                         ENUM ('personal', 'organizational') default 'personal',
+    name_type                         ENUM ('PERSONAL', 'ORGANIZATIONAL') default 'PERSONAL',
     name_identifier                   text,
-    name_identifier_scheme            ENUM ('ror', 'grid', 'isni', 'orcid'),
+    name_identifier_scheme            ENUM ('ROR', 'GRID', 'ISNI', 'ORCID'),
     name_identifier_scheme_uri        text,
     affiliation                       VARCHAR(255),
     affiliation_identifier            text,
-    affiliation_identifier_scheme     ENUM ('ror', 'grid', 'isni'),
+    affiliation_identifier_scheme     ENUM ('ROR', 'GRID', 'ISNI'),
     affiliation_identifier_scheme_uri text,
     PRIMARY KEY (id),
     FOREIGN KEY (pid) REFERENCES mdb_identifiers (id)
@@ -504,7 +504,7 @@ CREATE TABLE IF NOT EXISTS `mdb_have_access`
 (
     user_id     character varying(36)                   NOT NULL,
     database_id bigint REFERENCES mdb_databases (id),
-    access_type ENUM ('read', 'write_own', 'write_all') NOT NULL,
+    access_type ENUM ('READ', 'WRITE_OWN', 'WRITE_ALL') NOT NULL,
     created     timestamp                               NOT NULL DEFAULT NOW(),
     PRIMARY KEY (user_id, database_id),
     FOREIGN KEY (user_id) REFERENCES mdb_users (id)
diff --git a/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/user/external/ExternalMetadataDto.java b/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/user/external/ExternalMetadataDto.java
index 668db14f79c7f084b22dab89a0f0fac1c13d0317..80d5d04d6db2ea80de5b1b64c8a9683b51a3dd69 100644
--- a/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/user/external/ExternalMetadataDto.java
+++ b/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/user/external/ExternalMetadataDto.java
@@ -11,8 +11,6 @@ import lombok.extern.jackson.Jacksonized;
 @Builder
 @NoArgsConstructor
 @AllArgsConstructor
-@Jacksonized
-@ToString
 public class ExternalMetadataDto {
 
     @Schema(example = "Josiah")
diff --git a/dbrepo-metadata-service/entities/src/main/java/at/tuwien/converters/AccessTypeConverter.java b/dbrepo-metadata-service/entities/src/main/java/at/tuwien/converters/AccessTypeConverter.java
deleted file mode 100644
index e8ee655c8b054df2592dc0208b2b02baeb8f4327..0000000000000000000000000000000000000000
--- a/dbrepo-metadata-service/entities/src/main/java/at/tuwien/converters/AccessTypeConverter.java
+++ /dev/null
@@ -1,26 +0,0 @@
-package at.tuwien.converters;
-
-import at.tuwien.entities.database.AccessType;
-import jakarta.persistence.AttributeConverter;
-import jakarta.persistence.Converter;
-
-@Converter
-public class AccessTypeConverter implements AttributeConverter<AccessType, String> {
-
-    @Override
-    public String convertToDatabaseColumn(AccessType accessType) {
-        if (accessType == null) {
-            return null;
-        }
-        return accessType.name()
-                .toLowerCase();
-    }
-
-    @Override
-    public AccessType convertToEntityAttribute(String accessType) {
-        if (accessType == null) {
-            return null;
-        }
-        return AccessType.valueOf(accessType.toUpperCase());
-    }
-}
diff --git a/dbrepo-metadata-service/entities/src/main/java/at/tuwien/converters/BannerMessageTypeConverter.java b/dbrepo-metadata-service/entities/src/main/java/at/tuwien/converters/BannerMessageTypeConverter.java
deleted file mode 100644
index 24143a7453a074456431b8c2ccc89c00ef1b6f8e..0000000000000000000000000000000000000000
--- a/dbrepo-metadata-service/entities/src/main/java/at/tuwien/converters/BannerMessageTypeConverter.java
+++ /dev/null
@@ -1,26 +0,0 @@
-package at.tuwien.converters;
-
-import at.tuwien.entities.maintenance.BannerMessageType;
-import jakarta.persistence.AttributeConverter;
-import jakarta.persistence.Converter;
-
-@Converter
-public class BannerMessageTypeConverter implements AttributeConverter<BannerMessageType, String> {
-
-    @Override
-    public String convertToDatabaseColumn(BannerMessageType bannerMessageType) {
-        if (bannerMessageType == null) {
-            return null;
-        }
-        return bannerMessageType.name()
-                .toLowerCase();
-    }
-
-    @Override
-    public BannerMessageType convertToEntityAttribute(String bannerMessageType) {
-        if (bannerMessageType == null) {
-            return null;
-        }
-        return BannerMessageType.valueOf(bannerMessageType.toUpperCase());
-    }
-}
diff --git a/dbrepo-metadata-service/entities/src/main/java/at/tuwien/converters/IdentifierAffiliationIdentifierSchemeTypeConverter.java b/dbrepo-metadata-service/entities/src/main/java/at/tuwien/converters/IdentifierAffiliationIdentifierSchemeTypeConverter.java
deleted file mode 100644
index 7afc5975b109c6095f2d7017618d0ac9541bb780..0000000000000000000000000000000000000000
--- a/dbrepo-metadata-service/entities/src/main/java/at/tuwien/converters/IdentifierAffiliationIdentifierSchemeTypeConverter.java
+++ /dev/null
@@ -1,26 +0,0 @@
-package at.tuwien.converters;
-
-import at.tuwien.entities.identifier.AffiliationIdentifierSchemeType;
-import jakarta.persistence.AttributeConverter;
-import jakarta.persistence.Converter;
-
-@Converter
-public class IdentifierAffiliationIdentifierSchemeTypeConverter implements AttributeConverter<AffiliationIdentifierSchemeType, String> {
-
-    @Override
-    public String convertToDatabaseColumn(AffiliationIdentifierSchemeType affiliationIdentifierSchemeType) {
-        if (affiliationIdentifierSchemeType == null) {
-            return null;
-        }
-        return affiliationIdentifierSchemeType.name()
-                .toLowerCase();
-    }
-
-    @Override
-    public AffiliationIdentifierSchemeType convertToEntityAttribute(String affiliationIdentifierSchemeType) {
-        if (affiliationIdentifierSchemeType == null) {
-            return null;
-        }
-        return AffiliationIdentifierSchemeType.valueOf(affiliationIdentifierSchemeType.toUpperCase());
-    }
-}
diff --git a/dbrepo-metadata-service/entities/src/main/java/at/tuwien/converters/IdentifierDescriptionTypeConverter.java b/dbrepo-metadata-service/entities/src/main/java/at/tuwien/converters/IdentifierDescriptionTypeConverter.java
deleted file mode 100644
index d426126a569694ca35aea34be1395765793b2e0b..0000000000000000000000000000000000000000
--- a/dbrepo-metadata-service/entities/src/main/java/at/tuwien/converters/IdentifierDescriptionTypeConverter.java
+++ /dev/null
@@ -1,26 +0,0 @@
-package at.tuwien.converters;
-
-import at.tuwien.entities.identifier.DescriptionType;
-import jakarta.persistence.AttributeConverter;
-import jakarta.persistence.Converter;
-
-@Converter
-public class IdentifierDescriptionTypeConverter implements AttributeConverter<DescriptionType, String> {
-
-    @Override
-    public String convertToDatabaseColumn(DescriptionType descriptionType) {
-        if (descriptionType == null) {
-            return null;
-        }
-        return descriptionType.name()
-                .toLowerCase();
-    }
-
-    @Override
-    public DescriptionType convertToEntityAttribute(String descriptionType) {
-        if (descriptionType == null) {
-            return null;
-        }
-        return DescriptionType.valueOf(descriptionType.toUpperCase());
-    }
-}
diff --git a/dbrepo-metadata-service/entities/src/main/java/at/tuwien/converters/IdentifierFunderTypeConverter.java b/dbrepo-metadata-service/entities/src/main/java/at/tuwien/converters/IdentifierFunderTypeConverter.java
deleted file mode 100644
index c7214475510ad756bb851ddec31eded77f87f8cd..0000000000000000000000000000000000000000
--- a/dbrepo-metadata-service/entities/src/main/java/at/tuwien/converters/IdentifierFunderTypeConverter.java
+++ /dev/null
@@ -1,26 +0,0 @@
-package at.tuwien.converters;
-
-import at.tuwien.entities.identifier.IdentifierFunderType;
-import jakarta.persistence.AttributeConverter;
-import jakarta.persistence.Converter;
-
-@Converter
-public class IdentifierFunderTypeConverter implements AttributeConverter<IdentifierFunderType, String> {
-
-    @Override
-    public String convertToDatabaseColumn(IdentifierFunderType identifierFunderType) {
-        if (identifierFunderType == null) {
-            return null;
-        }
-        return identifierFunderType.name()
-                .toLowerCase();
-    }
-
-    @Override
-    public IdentifierFunderType convertToEntityAttribute(String identifierFunderType) {
-        if (identifierFunderType == null) {
-            return null;
-        }
-        return IdentifierFunderType.valueOf(identifierFunderType.toUpperCase());
-    }
-}
diff --git a/dbrepo-metadata-service/entities/src/main/java/at/tuwien/converters/IdentifierIdentifierTypeConverter.java b/dbrepo-metadata-service/entities/src/main/java/at/tuwien/converters/IdentifierIdentifierTypeConverter.java
deleted file mode 100644
index e78553256b0c825e3235f6a204047c40704eb6c3..0000000000000000000000000000000000000000
--- a/dbrepo-metadata-service/entities/src/main/java/at/tuwien/converters/IdentifierIdentifierTypeConverter.java
+++ /dev/null
@@ -1,26 +0,0 @@
-package at.tuwien.converters;
-
-import at.tuwien.entities.identifier.IdentifierType;
-import jakarta.persistence.AttributeConverter;
-import jakarta.persistence.Converter;
-
-@Converter
-public class IdentifierIdentifierTypeConverter implements AttributeConverter<IdentifierType, String> {
-
-    @Override
-    public String convertToDatabaseColumn(IdentifierType identifierType) {
-        if (identifierType == null) {
-            return null;
-        }
-        return identifierType.name()
-                .toLowerCase();
-    }
-
-    @Override
-    public IdentifierType convertToEntityAttribute(String identifierType) {
-        if (identifierType == null) {
-            return null;
-        }
-        return IdentifierType.valueOf(identifierType.toUpperCase());
-    }
-}
diff --git a/dbrepo-metadata-service/entities/src/main/java/at/tuwien/converters/IdentifierNameIdentifierSchemeTypeConverter.java b/dbrepo-metadata-service/entities/src/main/java/at/tuwien/converters/IdentifierNameIdentifierSchemeTypeConverter.java
deleted file mode 100644
index e5b74326aab5c6cedd74427f8cb2b75818607ac8..0000000000000000000000000000000000000000
--- a/dbrepo-metadata-service/entities/src/main/java/at/tuwien/converters/IdentifierNameIdentifierSchemeTypeConverter.java
+++ /dev/null
@@ -1,26 +0,0 @@
-package at.tuwien.converters;
-
-import at.tuwien.entities.identifier.NameIdentifierSchemeType;
-import jakarta.persistence.AttributeConverter;
-import jakarta.persistence.Converter;
-
-@Converter
-public class IdentifierNameIdentifierSchemeTypeConverter implements AttributeConverter<NameIdentifierSchemeType, String> {
-
-    @Override
-    public String convertToDatabaseColumn(NameIdentifierSchemeType nameIdentifierSchemeType) {
-        if (nameIdentifierSchemeType == null) {
-            return null;
-        }
-        return nameIdentifierSchemeType.name()
-                .toLowerCase();
-    }
-
-    @Override
-    public NameIdentifierSchemeType convertToEntityAttribute(String nameIdentifierSchemeType) {
-        if (nameIdentifierSchemeType == null) {
-            return null;
-        }
-        return NameIdentifierSchemeType.valueOf(nameIdentifierSchemeType.toUpperCase());
-    }
-}
diff --git a/dbrepo-metadata-service/entities/src/main/java/at/tuwien/converters/IdentifierNameTypeConverter.java b/dbrepo-metadata-service/entities/src/main/java/at/tuwien/converters/IdentifierNameTypeConverter.java
deleted file mode 100644
index c43f26af311c48ff25099e78586ed4aa28b14b5f..0000000000000000000000000000000000000000
--- a/dbrepo-metadata-service/entities/src/main/java/at/tuwien/converters/IdentifierNameTypeConverter.java
+++ /dev/null
@@ -1,27 +0,0 @@
-package at.tuwien.converters;
-
-import at.tuwien.entities.identifier.NameType;
-import at.tuwien.entities.identifier.RelatedType;
-import jakarta.persistence.AttributeConverter;
-import jakarta.persistence.Converter;
-
-@Converter
-public class IdentifierNameTypeConverter implements AttributeConverter<NameType, String> {
-
-    @Override
-    public String convertToDatabaseColumn(NameType nameType) {
-        if (nameType == null) {
-            return null;
-        }
-        return nameType.name()
-                .toLowerCase();
-    }
-
-    @Override
-    public NameType convertToEntityAttribute(String nameType) {
-        if (nameType == null) {
-            return null;
-        }
-        return NameType.valueOf(nameType.toUpperCase());
-    }
-}
diff --git a/dbrepo-metadata-service/entities/src/main/java/at/tuwien/converters/IdentifierRelatedTypeConverter.java b/dbrepo-metadata-service/entities/src/main/java/at/tuwien/converters/IdentifierRelatedTypeConverter.java
deleted file mode 100644
index 93309f8049869febbcb221b16b3f3ccb8d4add54..0000000000000000000000000000000000000000
--- a/dbrepo-metadata-service/entities/src/main/java/at/tuwien/converters/IdentifierRelatedTypeConverter.java
+++ /dev/null
@@ -1,26 +0,0 @@
-package at.tuwien.converters;
-
-import at.tuwien.entities.identifier.RelatedType;
-import jakarta.persistence.AttributeConverter;
-import jakarta.persistence.Converter;
-
-@Converter
-public class IdentifierRelatedTypeConverter implements AttributeConverter<RelatedType, String> {
-
-    @Override
-    public String convertToDatabaseColumn(RelatedType relatedType) {
-        if (relatedType == null) {
-            return null;
-        }
-        return relatedType.name()
-                .toLowerCase();
-    }
-
-    @Override
-    public RelatedType convertToEntityAttribute(String relatedType) {
-        if (relatedType == null) {
-            return null;
-        }
-        return RelatedType.valueOf(relatedType.toUpperCase());
-    }
-}
diff --git a/dbrepo-metadata-service/entities/src/main/java/at/tuwien/converters/IdentifierVisibilityTypeConverter.java b/dbrepo-metadata-service/entities/src/main/java/at/tuwien/converters/IdentifierVisibilityTypeConverter.java
deleted file mode 100644
index f6e63297687b3d40b7a33117678697cd4099858f..0000000000000000000000000000000000000000
--- a/dbrepo-metadata-service/entities/src/main/java/at/tuwien/converters/IdentifierVisibilityTypeConverter.java
+++ /dev/null
@@ -1,26 +0,0 @@
-package at.tuwien.converters;
-
-import at.tuwien.entities.identifier.VisibilityType;
-import jakarta.persistence.AttributeConverter;
-import jakarta.persistence.Converter;
-
-@Converter
-public class IdentifierVisibilityTypeConverter implements AttributeConverter<VisibilityType, String> {
-
-    @Override
-    public String convertToDatabaseColumn(VisibilityType visibilityType) {
-        if (visibilityType == null) {
-            return null;
-        }
-        return visibilityType.name()
-                .toLowerCase();
-    }
-
-    @Override
-    public VisibilityType convertToEntityAttribute(String visibilityType) {
-        if (visibilityType == null) {
-            return null;
-        }
-        return VisibilityType.valueOf(visibilityType.toUpperCase());
-    }
-}
diff --git a/dbrepo-metadata-service/entities/src/main/java/at/tuwien/converters/LanguageTypeConverter.java b/dbrepo-metadata-service/entities/src/main/java/at/tuwien/converters/LanguageTypeConverter.java
deleted file mode 100644
index dad10800f45698b9547f22ec744025c9d0687a99..0000000000000000000000000000000000000000
--- a/dbrepo-metadata-service/entities/src/main/java/at/tuwien/converters/LanguageTypeConverter.java
+++ /dev/null
@@ -1,26 +0,0 @@
-package at.tuwien.converters;
-
-import at.tuwien.entities.database.LanguageType;
-import jakarta.persistence.AttributeConverter;
-import jakarta.persistence.Converter;
-
-@Converter
-public class LanguageTypeConverter implements AttributeConverter<LanguageType, String> {
-
-    @Override
-    public String convertToDatabaseColumn(LanguageType languageType) {
-        if (languageType == null) {
-            return null;
-        }
-        return languageType.name()
-                .toLowerCase();
-    }
-
-    @Override
-    public LanguageType convertToEntityAttribute(String languageType) {
-        if (languageType == null) {
-            return null;
-        }
-        return LanguageType.valueOf(languageType.toUpperCase());
-    }
-}
diff --git a/dbrepo-metadata-service/entities/src/main/java/at/tuwien/converters/TableColumnTypeConverter.java b/dbrepo-metadata-service/entities/src/main/java/at/tuwien/converters/TableColumnTypeConverter.java
deleted file mode 100644
index f057f7233233fa61ce880451666443c9c6a4a522..0000000000000000000000000000000000000000
--- a/dbrepo-metadata-service/entities/src/main/java/at/tuwien/converters/TableColumnTypeConverter.java
+++ /dev/null
@@ -1,26 +0,0 @@
-package at.tuwien.converters;
-
-import at.tuwien.entities.database.table.columns.TableColumnType;
-import jakarta.persistence.AttributeConverter;
-import jakarta.persistence.Converter;
-
-@Converter
-public class TableColumnTypeConverter implements AttributeConverter<TableColumnType, String> {
-
-    @Override
-    public String convertToDatabaseColumn(TableColumnType tableColumnType) {
-        if (tableColumnType == null) {
-            return null;
-        }
-        return tableColumnType.name()
-                .toLowerCase();
-    }
-
-    @Override
-    public TableColumnType convertToEntityAttribute(String tableColumnType) {
-        if (tableColumnType == null) {
-            return null;
-        }
-        return TableColumnType.valueOf(tableColumnType.toUpperCase());
-    }
-}
diff --git a/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/database/AccessType.java b/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/database/AccessType.java
index c14042c070f173d80030148c01f34b8c93e01c4a..19a642ff965c7c1b930e67e31fa6b41decb59e67 100644
--- a/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/database/AccessType.java
+++ b/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/database/AccessType.java
@@ -4,22 +4,9 @@ import lombok.Getter;
 import lombok.ToString;
 
 @Getter
+@ToString
 public enum AccessType {
-
-    READ("read"),
-
-    WRITE_OWN("write_own"),
-
-    WRITE_ALL("write_all");
-
-    private String name;
-
-    AccessType(String name) {
-        this.name = name;
-    }
-
-    @Override
-    public String toString() {
-        return this.name;
-    }
+    READ,
+    WRITE_OWN,
+    WRITE_ALL;
 }
diff --git a/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/database/Database.java b/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/database/Database.java
index a47cc416a5625050254f40a90d16e2b08a477c5d..e3e4eccc1c760640753f6a7bb2e43b13d6eb72d7 100644
--- a/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/database/Database.java
+++ b/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/database/Database.java
@@ -108,7 +108,7 @@ public class Database implements Serializable {
     @OneToOne(fetch = FetchType.LAZY)
     @JoinColumnsOrFormulas({
             @JoinColumnOrFormula(column = @JoinColumn(name = "id", referencedColumnName = "dbid", insertable = false, updatable = false)),
-            @JoinColumnOrFormula(formula = @JoinFormula(referencedColumnName = "identifier_type", value = "'database'"))
+            @JoinColumnOrFormula(formula = @JoinFormula(referencedColumnName = "identifier_type", value = "'DATABASE'"))
     })
     private Identifier identifier;
 
diff --git a/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/database/DatabaseAccess.java b/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/database/DatabaseAccess.java
index 3a1748e385bc5081e3f930a6b759634b158175ec..8492ee757feffab1f0045ccf2bbe004081042bc1 100644
--- a/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/database/DatabaseAccess.java
+++ b/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/database/DatabaseAccess.java
@@ -1,6 +1,5 @@
 package at.tuwien.entities.database;
 
-import at.tuwien.converters.AccessTypeConverter;
 import at.tuwien.entities.user.User;
 import lombok.*;
 import org.hibernate.annotations.JdbcTypeCode;
@@ -51,8 +50,8 @@ public class DatabaseAccess {
     })
     private Database database;
 
-    @Column(nullable = false, name = "access_type", columnDefinition = "enum('read', 'write_own', 'write_all')")
-    @Convert(converter = AccessTypeConverter.class)
+    @Column(nullable = false, name = "access_type", columnDefinition = "enum('READ', 'WRITE_OWN', 'WRITE_ALL')")
+    @Enumerated(EnumType.STRING)
     private AccessType type;
 
     @Column(nullable = false, updatable = false, columnDefinition = "TIMESTAMP")
diff --git a/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/database/View.java b/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/database/View.java
index 5961cc7e7cbbddf925bc9e8445d16e369d4a02de..569ae61ea7100f246f85da3ac3cabe5f8f4d589f 100644
--- a/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/database/View.java
+++ b/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/database/View.java
@@ -85,7 +85,7 @@ public class View {
     @OneToOne(fetch = FetchType.LAZY)
     @JoinColumnsOrFormulas({
             @JoinColumnOrFormula(column = @JoinColumn(name = "id", referencedColumnName = "vid", insertable = false, updatable = false)),
-            @JoinColumnOrFormula(formula = @JoinFormula(referencedColumnName = "identifier_type", value = "'view'"))
+            @JoinColumnOrFormula(formula = @JoinFormula(referencedColumnName = "identifier_type", value = "'VIEW'"))
     })
     private Identifier identifier;
 
diff --git a/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/database/table/columns/TableColumn.java b/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/database/table/columns/TableColumn.java
index 05fd24b66e7f858b47327caf226d2903733ed535..552fbd332588a5ecf8aac44a7872794102ada544 100644
--- a/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/database/table/columns/TableColumn.java
+++ b/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/database/table/columns/TableColumn.java
@@ -1,6 +1,5 @@
 package at.tuwien.entities.database.table.columns;
 
-import at.tuwien.converters.TableColumnTypeConverter;
 import at.tuwien.entities.container.image.ContainerImageDate;
 import at.tuwien.entities.database.View;
 import at.tuwien.entities.database.table.Table;
@@ -72,8 +71,8 @@ public class TableColumn implements Comparable<TableColumn> {
     @Column
     private String alias;
 
-    @Column(name = "datatype", nullable = false, columnDefinition = "ENUM('char','varchar','binary','varbinary','tinyblob','tinytext','text','blob','mediumtext','mediumblob','longtext','longblob','enum','set','bit','tinyint','bool','smallint','mediumint','int','bigint','float','double','decimal','date','datetime','timestamp','time','year')")
-    @Convert(converter = TableColumnTypeConverter.class)
+    @Column(name = "datatype", nullable = false, columnDefinition = "ENUM('CHAR','VARCHAR','BINARY','VARBINARY','TINYBLOB','TINYTEXT','TEXT','BLOB','MEDIUMTEXT','MEDIUMBLOB','LONGTEXT','LONGBLOB','ENUM','SET','BIT','TINYINT','BOOL','SMALLINT','MEDIUMINT','INT','BIGINT','FLOAT','DOUBLE','DECIMAL','DATE','DATETIME','TIMESTAMP','TIME','YEAR')")
+    @Enumerated(EnumType.STRING)
     private TableColumnType columnType;
 
     @Column
diff --git a/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/database/table/columns/TableColumnType.java b/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/database/table/columns/TableColumnType.java
index cf3bed9a85cdbc8492363454f2c9c077b8c2be27..074620a349fff43977ad585a7e4abe4ad770f39e 100644
--- a/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/database/table/columns/TableColumnType.java
+++ b/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/database/table/columns/TableColumnType.java
@@ -4,74 +4,35 @@ import lombok.Getter;
 import lombok.ToString;
 
 @Getter
+@ToString
 public enum TableColumnType {
-
-    CHAR("char"),
-
-    VARCHAR("varchar"),
-
-    BINARY("binary"),
-
-    VARBINARY("varbinary"),
-
-    TINYBLOB("tinyblob"),
-
-    TINYTEXT("tinytext"),
-
-    TEXT("text"),
-
-    BLOB("blob"),
-
-    MEDIUMTEXT("mediumtext"),
-
-    MEDIUMBLOB("mediumblob"),
-
-    LONGTEXT("longtext"),
-
-    LONGBLOB("longblob"),
-
-    ENUM("enum"),
-
-    SET("set"),
-
-    BIT("bit"),
-
-    TINYINT("tinyint"),
-
-    BOOL("bool"),
-
-    SMALLINT("smallint"),
-
-    MEDIUMINT("mediumint"),
-
-    INT("int"),
-
-    BIGINT("bigint"),
-
-    FLOAT("float"),
-
-    DOUBLE("double"),
-
-    DECIMAL("decimal"),
-
-    DATE("date"),
-
-    DATETIME("datetime"),
-
-    TIMESTAMP("timestamp"),
-
-    TIME("time"),
-
-    YEAR("year");
-
-    private String name;
-
-    TableColumnType(String name) {
-        this.name = name;
-    }
-
-    @Override
-    public String toString() {
-        return this.name;
-    }
+    CHAR,
+    VARCHAR,
+    BINARY,
+    VARBINARY,
+    TINYBLOB,
+    TINYTEXT,
+    TEXT,
+    BLOB,
+    MEDIUMTEXT,
+    MEDIUMBLOB,
+    LONGTEXT,
+    LONGBLOB,
+    ENUM,
+    SET,
+    BIT,
+    TINYINT,
+    BOOL,
+    SMALLINT,
+    MEDIUMINT,
+    INT,
+    BIGINT,
+    FLOAT,
+    DOUBLE,
+    DECIMAL,
+    DATE,
+    DATETIME,
+    TIMESTAMP,
+    TIME,
+    YEAR;
 }
\ No newline at end of file
diff --git a/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/identifier/AffiliationIdentifierSchemeType.java b/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/identifier/AffiliationIdentifierSchemeType.java
index 5c3f62d6e719fd568e502411b6295d0302756428..0d794ff431005a17a34294b19816ea84cc6e3ab6 100644
--- a/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/identifier/AffiliationIdentifierSchemeType.java
+++ b/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/identifier/AffiliationIdentifierSchemeType.java
@@ -5,21 +5,7 @@ import lombok.Getter;
 
 @Getter
 public enum AffiliationIdentifierSchemeType {
-
-    ROR("ror"),
-
-    GRID("grid"),
-
-    ISNI("isni");
-
-    private String name;
-
-    AffiliationIdentifierSchemeType(String name) {
-        this.name = name;
-    }
-
-    @Override
-    public String toString() {
-        return this.name;
-    }
+    ROR,
+    GRID,
+    ISNI
 }
diff --git a/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/identifier/Creator.java b/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/identifier/Creator.java
index 4119bba2579b98d1c09451f20335856fa2f032a4..d3a3e372d0cd110a9fadf6973c8f9197f237407a 100644
--- a/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/identifier/Creator.java
+++ b/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/identifier/Creator.java
@@ -1,8 +1,5 @@
 package at.tuwien.entities.identifier;
 
-import at.tuwien.converters.IdentifierAffiliationIdentifierSchemeTypeConverter;
-import at.tuwien.converters.IdentifierNameIdentifierSchemeTypeConverter;
-import at.tuwien.converters.IdentifierNameTypeConverter;
 import lombok.*;
 import org.hibernate.annotations.GenericGenerator;
 import org.springframework.data.jpa.domain.support.AuditingEntityListener;
@@ -35,15 +32,15 @@ public class Creator {
     @Column(name = "creator_name", nullable = false)
     private String creatorName;
 
-    @Column(columnDefinition = "enum('personal', 'organizational')")
-    @Convert(converter = IdentifierNameTypeConverter.class)
+    @Column(columnDefinition = "enum('PERSONAL', 'ORGANIZATIONAL')")
+    @Enumerated(EnumType.STRING)
     private NameType nameType;
 
     @Column
     private String nameIdentifier;
 
-    @Column(columnDefinition = "enum('ror', 'grid', 'isni', 'orcid')")
-    @Convert(converter = IdentifierNameIdentifierSchemeTypeConverter.class)
+    @Column(columnDefinition = "enum('ROR', 'GRID', 'ISNI', 'ORCID')")
+    @Enumerated(EnumType.STRING)
     private NameIdentifierSchemeType nameIdentifierScheme;
 
     @Column
@@ -55,8 +52,8 @@ public class Creator {
     @Column
     private String affiliationIdentifier;
 
-    @Column(columnDefinition = "enum('ror', 'grid', 'isni')")
-    @Convert(converter = IdentifierAffiliationIdentifierSchemeTypeConverter.class)
+    @Column(columnDefinition = "enum('ROR', 'GRID', 'ISNI')")
+    @Enumerated(EnumType.STRING)
     private AffiliationIdentifierSchemeType affiliationIdentifierScheme;
 
     private String affiliationIdentifierSchemeUri;
diff --git a/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/identifier/Identifier.java b/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/identifier/Identifier.java
index ef8f0405c18e696b46ae8976532a779aeea29485..df3ee6fff9b9dc93d0b7526af5d8abe4f698aab5 100644
--- a/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/identifier/Identifier.java
+++ b/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/identifier/Identifier.java
@@ -1,7 +1,5 @@
 package at.tuwien.entities.identifier;
 
-import at.tuwien.converters.IdentifierIdentifierTypeConverter;
-import at.tuwien.converters.IdentifierVisibilityTypeConverter;
 import at.tuwien.entities.database.Database;
 import at.tuwien.entities.database.LanguageType;
 import at.tuwien.entities.database.License;
@@ -29,11 +27,11 @@ import java.util.UUID;
 @EntityListeners(AuditingEntityListener.class)
 @Table(name = "mdb_identifiers")
 @NamedQueries({
-        @NamedQuery(name = "Identifier.findAllDatabaseIdentifiers", query = "select i from Identifier i where i.type = 'database'"),
-        @NamedQuery(name = "Identifier.findAllSubsetIdentifiers", query = "select i from Identifier i where i.type = 'subset'"),
-        @NamedQuery(name = "Identifier.findDatabaseIdentifier", query = "select i from Identifier i where i.databaseId = ?1 and i.type = 'database'"),
-        @NamedQuery(name = "Identifier.findSubsetIdentifier", query = "select i from Identifier i where i.databaseId = ?1 and i.queryId = ?2 and i.type = 'subset'"),
-        @NamedQuery(name = "Identifier.findViewIdentifier", query = "select i from Identifier i where i.databaseId = ?1 and i.viewId = ?2 and i.type = 'view'"),
+        @NamedQuery(name = "Identifier.findAllDatabaseIdentifiers", query = "select i from Identifier i where i.type = 'DATABASE'"),
+        @NamedQuery(name = "Identifier.findAllSubsetIdentifiers", query = "select i from Identifier i where i.type = 'SUBSET'"),
+        @NamedQuery(name = "Identifier.findDatabaseIdentifier", query = "select i from Identifier i where i.databaseId = ?1 and i.type = 'DATABASE'"),
+        @NamedQuery(name = "Identifier.findSubsetIdentifier", query = "select i from Identifier i where i.databaseId = ?1 and i.queryId = ?2 and i.type = 'SUBSET'"),
+        @NamedQuery(name = "Identifier.findViewIdentifier", query = "select i from Identifier i where i.databaseId = ?1 and i.viewId = ?2 and i.type = 'VIEW'"),
 })
 public class Identifier implements Serializable {
 
@@ -85,8 +83,8 @@ public class Identifier implements Serializable {
     )
     private List<License> licenses;
 
-    @Column(name = "identifier_type", nullable = false, columnDefinition = "enum('subset', 'database', 'view')")
-    @Convert(converter = IdentifierIdentifierTypeConverter.class)
+    @Column(name = "identifier_type", nullable = false, columnDefinition = "enum('SUBSET', 'DATABASE', 'VIEW')")
+    @Enumerated(EnumType.STRING)
     private IdentifierType type;
 
     @Column(columnDefinition = "TEXT")
@@ -123,8 +121,8 @@ public class Identifier implements Serializable {
     @Column
     private Integer publicationDay;
 
-    @Column(nullable = false, columnDefinition = "enum('everyone', 'self')")
-    @Convert(converter = IdentifierVisibilityTypeConverter.class)
+    @Column(nullable = false, columnDefinition = "enum('EVERYONE', 'SELF')")
+    @Enumerated(EnumType.STRING)
     private VisibilityType visibility;
 
     @ToString.Exclude
diff --git a/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/identifier/IdentifierDescription.java b/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/identifier/IdentifierDescription.java
index 4ead69810942835163fd64f9cce38bd8d50c431a..26b88690637d34cc81b135550ab191c8a108a414 100644
--- a/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/identifier/IdentifierDescription.java
+++ b/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/identifier/IdentifierDescription.java
@@ -1,7 +1,5 @@
 package at.tuwien.entities.identifier;
 
-import at.tuwien.converters.IdentifierDescriptionTypeConverter;
-import at.tuwien.converters.LanguageTypeConverter;
 import at.tuwien.entities.database.LanguageType;
 import jakarta.persistence.*;
 import lombok.*;
@@ -32,12 +30,12 @@ public class IdentifierDescription implements Serializable {
     private String description;
 
     @Field(name = "description_type")
-    @Column(columnDefinition = "enum('abstract', 'methods', 'series_information', 'table_of_contents', 'technical_info', 'other')")
-    @Convert(converter = IdentifierDescriptionTypeConverter.class)
+    @Column(columnDefinition = "enum('ABSTRACT', 'METHODS', 'SERIES_INFORMATION', 'TABLE_OF_CONTENTS', 'TECHNICAL_INFO', 'OTHER')")
+    @Enumerated(EnumType.STRING)
     private DescriptionType descriptionType;
 
-    @Column(columnDefinition = "enum('ab','aa','af','ak','sq','am','ar','an','hy','as','av','ae','ay','az','bm','ba','eu','be','bn','bh','bi','bs','br','bg','my','ca','km','ch','ce','ny','zh','cu','cv','kw','co','cr','hr','cs','da','dv','nl','dz','en','eo','et','ee','fo','fj','fi','fr','ff','gd','gl','lg','ka','de','ki','el','kl','gn','gu','ht','ha','he','hz','hi','ho','hu','is','io','ig','id','ia','ie','iu','ik','ga','it','ja','jv','kn','kr','ks','kk','rw','kv','kg','ko','kj','ku','ky','lo','la','lv','lb','li','ln','lt','lu','mk','mg','ms','ml','mt','gv','mi','mr','mh','ro','mn','na','nv','nd','ng','ne','se','no','nb','nn','ii','oc','oj','or','om','os','pi','pa','ps','fa','pl','pt','qu','rm','rn','ru','sm','sg','sa','sc','sr','sn','sd','si','sk','sl','so','st','nr','es','su','sw','ss','sv','tl','ty','tg','ta','tt','te','th','bo','ti','to','ts','tn','tr','tk','tw','ug','uk','ur','uz','ve','vi','vo','wa','cy','fy','wo','xh','yi','yo','za','zu')")
-    @Convert(converter = LanguageTypeConverter.class)
+    @Column(columnDefinition = "enum('AB','AA','AF','AK','SQ','AM','AR','AN','HY','AS','AV','AE','AY','AZ','BM','BA','EU','BE','BN','BH','BI','BS','BR','BG','MY','CA','KM','CH','CE','NY','ZH','CU','CV','KW','CO','CR','HR','CS','DA','DV','NL','DZ','EN','EO','ET','EE','FO','FJ','FI','FR','FF','GD','GL','LG','KA','DE','KI','EL','KL','GN','GU','HT','HA','HE','HZ','HI','HO','HU','IS','IO','IG','ID','IA','IE','IU','IK','GA','IT','JA','JV','KN','KR','KS','KK','RW','KV','KG','KO','KJ','KU','KY','LO','LA','LV','LB','LI','LN','LT','LU','MK','MG','MS','ML','MT','GV','MI','MR','MH','RO','MN','NA','NV','ND','NG','NE','SE','NO','NB','NN','II','OC','OJ','OR','OM','OS','PI','PA','PS','FA','PL','PT','QU','RM','RN','RU','SM','SG','SA','SC','SR','SN','SD','SI','SK','SL','SO','ST','NR','ES','SU','SW','SS','SV','TL','TY','TG','TA','TT','TE','TH','BO','TI','TO','TS','TN','TR','TK','TW','UG','UK','UR','UZ','VE','VI','VO','WA','CY','FY','WO','XH','YI','YO','ZA','ZU')")
+    @Enumerated(EnumType.STRING)
     private LanguageType language;
 
     @ToString.Exclude
diff --git a/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/identifier/IdentifierFunder.java b/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/identifier/IdentifierFunder.java
index cdf4b148c66d0487d0b1b9d6ad799e0370a1f9d2..65a7b9fdc26e686d1a60d7f92e82a955658a4c2c 100644
--- a/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/identifier/IdentifierFunder.java
+++ b/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/identifier/IdentifierFunder.java
@@ -1,6 +1,5 @@
 package at.tuwien.entities.identifier;
 
-import at.tuwien.converters.IdentifierFunderTypeConverter;
 import jakarta.persistence.*;
 import lombok.*;
 import org.hibernate.annotations.GenericGenerator;
@@ -35,8 +34,8 @@ public class IdentifierFunder implements Serializable {
     private String funderIdentifier;
 
     @Field(name = "funder_identifier_type")
-    @Column(name="funder_identifier_type", columnDefinition = "enum('crossref_funder_id', 'ror', 'gnd', 'isni', 'other')")
-    @Convert(converter = IdentifierFunderTypeConverter.class)
+    @Column(name="funder_identifier_type", columnDefinition = "enum('CROSSREF_FUNDER_ID', 'ROR', 'GND', 'ISNI', 'OTHER')")
+    @Enumerated(EnumType.STRING)
     private IdentifierFunderType funderIdentifierType;
 
     @Field(name = "scheme_uri")
diff --git a/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/identifier/IdentifierFunderType.java b/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/identifier/IdentifierFunderType.java
index 12b31112c66820f1e2e65ffe601b15b49cece8d1..ea538dcbfbc062884c19cfc4998e33c114f189d9 100644
--- a/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/identifier/IdentifierFunderType.java
+++ b/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/identifier/IdentifierFunderType.java
@@ -1,26 +1,9 @@
 package at.tuwien.entities.identifier;
 
 public enum IdentifierFunderType {
-
-    CROSSREF_FUNDER_ID("crossref_funder_id"),
-
-    ROR("ror"),
-
-    GND("gnd"),
-
-    ISNI("isni"),
-
-    OTHER("other");
-
-    private String name;
-
-    IdentifierFunderType(String name) {
-        this.name = name;
-    }
-
-    @Override
-    public String toString() {
-        return this.name;
-    }
-
+    CROSSREF_FUNDER_ID,
+    ROR,
+    GND,
+    ISNI,
+    OTHER
 }
diff --git a/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/identifier/IdentifierType.java b/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/identifier/IdentifierType.java
index a0d143cff0a1161864b11e9e3a18ea88f5b5fafc..c7032d2cf89beeb5576786f712038ab3fb34bfde 100644
--- a/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/identifier/IdentifierType.java
+++ b/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/identifier/IdentifierType.java
@@ -4,21 +4,7 @@ import lombok.Getter;
 
 @Getter
 public enum IdentifierType {
-
-    DATABASE("database"),
-
-    SUBSET("subset"),
-
-    VIEW("view");
-
-    private String name;
-
-    IdentifierType(String name) {
-        this.name = name;
-    }
-
-    @Override
-    public String toString() {
-        return this.name;
-    }
+    DATABASE,
+    SUBSET,
+    VIEW;
 }
diff --git a/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/identifier/NameIdentifierSchemeType.java b/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/identifier/NameIdentifierSchemeType.java
index e5564249cf25afe723978e1e8d672e4f803a5978..6a7eb73a12a15cfd7360cfe7e3034349caa0b75f 100644
--- a/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/identifier/NameIdentifierSchemeType.java
+++ b/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/identifier/NameIdentifierSchemeType.java
@@ -5,23 +5,8 @@ import lombok.Getter;
 
 @Getter
 public enum NameIdentifierSchemeType {
-
-    ORCID("orcid"),
-
-    ROR("ror"),
-
-    ISNI("isni"),
-
-    GRID("grid");
-
-    private String name;
-
-    NameIdentifierSchemeType(String name) {
-        this.name = name;
-    }
-
-    @Override
-    public String toString() {
-        return this.name;
-    }
+    ORCID,
+    ROR,
+    ISNI,
+    GRID
 }
diff --git a/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/identifier/NameType.java b/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/identifier/NameType.java
index f6c8d5f1074a6ff9effe0ce6e93fa37be81febf8..5f0790fbab6b1437ebce7a19292735af0431f4e4 100644
--- a/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/identifier/NameType.java
+++ b/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/identifier/NameType.java
@@ -4,19 +4,6 @@ import lombok.Getter;
 
 @Getter
 public enum NameType {
-
-    PERSONAL("Personal"),
-
-    ORGANIZATIONAL("Organizational");
-
-    private String name;
-
-    NameType(String name) {
-        this.name = name;
-    }
-
-    @Override
-    public String toString() {
-        return this.name;
-    }
+    PERSONAL,
+    ORGANIZATIONAL;
 }
diff --git a/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/identifier/RelatedIdentifier.java b/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/identifier/RelatedIdentifier.java
index 69c04c8d175c6bc01e7f006d582dc1eb8c278de9..a8006e626df74b2362ee9c6e98522a93939fdb6a 100644
--- a/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/identifier/RelatedIdentifier.java
+++ b/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/identifier/RelatedIdentifier.java
@@ -1,6 +1,5 @@
 package at.tuwien.entities.identifier;
 
-import at.tuwien.converters.IdentifierRelatedTypeConverter;
 import lombok.*;
 import org.hibernate.annotations.GenericGenerator;
 import org.springframework.data.jpa.domain.support.AuditingEntityListener;
@@ -30,11 +29,11 @@ public class RelatedIdentifier {
     @Column(nullable = false)
     private String value;
 
-    @Column(columnDefinition = "enum('doi', 'url', 'urn', 'ark', 'arxiv', 'bibcode', 'ean13', 'eissn', 'handle', 'igsn', 'isbn', 'istc', 'lissn', 'lsid', 'pmid', 'purl', 'upc', 'w3id')")
-    @Convert(converter = IdentifierRelatedTypeConverter.class)
+    @Column(columnDefinition = "enum('DOI','URL','URN','ARK','arXiv','bibcode','EAN13','EISSN','Handle','IGSN','ISBN','ISTC','LISSN','LSID','PMID','PURL','UPC','w3id')")
+    @Enumerated(EnumType.STRING)
     private RelatedType type;
 
-    @Column(columnDefinition = "enum('is_cited_by', 'cites', 'is_supplement_to', 'is_supplemented_by', 'is_continued_by', 'continues', 'is_described_by', 'describes', 'has_metadata', 'is_metadata_for', 'has_version', 'is_version_of', 'is_new_version_of', 'is_previous_version_of', 'is_part_of', 'has_part', 'is_published_in', 'is_referenced_by', 'references', 'is_documented_by', 'documents', 'is_compiled_by', 'compiles', 'is_variant_form_of', 'is_original_form_of', 'is_identical_to', 'is_reviewed_by', 'reviews', 'is_derived_from', 'is_source_of', 'is_required_by', 'requires', 'is_obsoleted_by', 'obsoletes')")
+    @Column(columnDefinition = "enum('IsCitedBy','Cites','IsSupplementTo','IsSupplementedBy','IsContinuedBy','Continues','IsDescribedBy','Describes','HasMetadata','IsMetadataFor','HasVersion','IsVersionOf','IsNewVersionOf','IsPreviousVersionOf','IsPartOf','HasPart','IsPublishedIn','IsReferencedBy','References','IsDocumentedBy','Documents','IsCompiledBy','Compiles','IsVariantFormOf','IsOriginalFormOf','IsIdenticalTo','IsReviewedBy','Reviews','IsDerivedFrom','IsSourceOf','IsRequiredBy','Requires','IsObsoletedBy','Obsoletes')")
     @Enumerated(EnumType.STRING)
     private RelationType relation;
 
diff --git a/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/identifier/VisibilityType.java b/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/identifier/VisibilityType.java
index 28efa248347c6c62297ffb668f29bbec81cf9174..3565740c6b2042fd4fdb003e68a19f369710efcf 100644
--- a/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/identifier/VisibilityType.java
+++ b/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/identifier/VisibilityType.java
@@ -4,20 +4,8 @@ import lombok.Getter;
 import lombok.ToString;
 
 @Getter
+@ToString
 public enum VisibilityType {
-
-    EVERYONE("everyone"),
-
-    SELF("self");
-
-    private String name;
-
-    VisibilityType(String name) {
-        this.name = name;
-    }
-
-    @Override
-    public String toString() {
-        return this.name;
-    }
+    EVERYONE,
+    SELF;
 }
\ No newline at end of file
diff --git a/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/maintenance/BannerMessage.java b/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/maintenance/BannerMessage.java
index 70c5abd8d81d4d0438ebb8f903b9dcffe06f6c7f..f7d2abaafcfc7e14a6806c56821501d8f4af7080 100644
--- a/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/maintenance/BannerMessage.java
+++ b/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/maintenance/BannerMessage.java
@@ -1,6 +1,5 @@
 package at.tuwien.entities.maintenance;
 
-import at.tuwien.converters.BannerMessageTypeConverter;
 import jakarta.persistence.*;
 import lombok.*;
 import org.hibernate.annotations.GenericGenerator;
@@ -28,8 +27,8 @@ public class BannerMessage {
     @Column(updatable = false, nullable = false)
     private Long id;
 
-    @Column(nullable = false, columnDefinition = "enum('error', 'warning', 'info')")
-    @Convert(converter = BannerMessageTypeConverter.class)
+    @Column(nullable = false, columnDefinition = "enum('ERROR','WARNING','INFO')")
+    @Enumerated(EnumType.STRING)
     private BannerMessageType type;
 
     @Column(nullable = false)
diff --git a/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/maintenance/BannerMessageType.java b/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/maintenance/BannerMessageType.java
index fbfdab9711e4f25d556bbf584fc3cd1da3b49cbb..ca838657419292d646c7aaf1349504181cb18224 100644
--- a/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/maintenance/BannerMessageType.java
+++ b/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/maintenance/BannerMessageType.java
@@ -1,24 +1,12 @@
 package at.tuwien.entities.maintenance;
 
 import lombok.Getter;
+import lombok.ToString;
 
 @Getter
+@ToString
 public enum BannerMessageType {
-
-    WARNING("warning"),
-
-    ERROR("error"),
-
-    INFO("info");
-
-    private String name;
-
-    BannerMessageType(String name) {
-        this.name = name;
-    }
-
-    @Override
-    public String toString() {
-        return this.name;
-    }
+    WARNING,
+    ERROR,
+    INFO;
 }
\ No newline at end of file
diff --git a/dbrepo-metadata-service/repositories/src/main/java/at/tuwien/mapper/DataCiteMapper.java b/dbrepo-metadata-service/repositories/src/main/java/at/tuwien/mapper/DataCiteMapper.java
index 0887a02f6468d0f704ef9ff0d34352b2148e31da..34467b0c566ab4f76ee430b658494a01fd2b534e 100644
--- a/dbrepo-metadata-service/repositories/src/main/java/at/tuwien/mapper/DataCiteMapper.java
+++ b/dbrepo-metadata-service/repositories/src/main/java/at/tuwien/mapper/DataCiteMapper.java
@@ -108,7 +108,7 @@ public interface DataCiteMapper {
         if (data == null) {
             return null;
         }
-        return DataCiteNameType.valueOf(data.getName().toUpperCase());
+        return DataCiteNameType.valueOf(data.toString());
     }
 
     @Mappings({
diff --git a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/mvc/IdentifierEndpointMvcTest.java b/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/mvc/IdentifierEndpointMvcTest.java
new file mode 100644
index 0000000000000000000000000000000000000000..f454cef6eed2eaf46b1319d1c896932df131e367
--- /dev/null
+++ b/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/mvc/IdentifierEndpointMvcTest.java
@@ -0,0 +1,57 @@
+package at.tuwien.mvc;
+
+import at.tuwien.BaseUnitTest;
+import at.tuwien.annotations.MockAmqp;
+import at.tuwien.annotations.MockOpensearch;
+import at.tuwien.gateway.OrcidGateway;
+import com.mchange.io.FileUtils;
+import lombok.extern.log4j.Log4j2;
+import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.extension.ExtendWith;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.boot.test.autoconfigure.web.servlet.AutoConfigureMockMvc;
+import org.springframework.boot.test.context.SpringBootTest;
+import org.springframework.boot.test.mock.mockito.MockBean;
+import org.springframework.http.MediaType;
+import org.springframework.test.context.junit.jupiter.SpringExtension;
+import org.springframework.test.web.servlet.MockMvc;
+
+import java.io.File;
+
+import static org.mockito.Mockito.*;
+import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get;
+import static org.springframework.test.web.servlet.result.MockMvcResultHandlers.print;
+import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.content;
+import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status;
+
+@Log4j2
+@ExtendWith(SpringExtension.class)
+@AutoConfigureMockMvc
+@SpringBootTest
+@MockAmqp
+@MockOpensearch
+public class IdentifierEndpointMvcTest extends BaseUnitTest {
+
+    @MockBean
+    private OrcidGateway orcidGateway;
+
+    @Autowired
+    private MockMvc mockMvc;
+
+    @Test
+    public void createUser_malformed_fails() throws Exception {
+
+        /* mock */
+        when(orcidGateway.findByUrl(anyString()))
+                .thenReturn(ORCID_1_DTO);
+
+        /* test */
+        this.mockMvc.perform(get("/api/identifier/retrieve?url=http://orcid.org/" + USER_1_ORCID_UNCOMPRESSED)
+                        .contentType(MediaType.APPLICATION_JSON)
+                        .accept(MediaType.APPLICATION_JSON))
+                .andExpect(content().string(FileUtils.getContentsAsString(new File("src/test/resources/json/ext_orcid_jdoe.json"))))
+                .andDo(print())
+                .andExpect(status().is(200));
+    }
+
+}
diff --git a/dbrepo-metadata-service/rest-service/src/test/resources/json/ext_orcid_jdoe.json b/dbrepo-metadata-service/rest-service/src/test/resources/json/ext_orcid_jdoe.json
new file mode 100644
index 0000000000000000000000000000000000000000..4bb11bd483d73b58d1c7c55af380b35e8b30d84f
--- /dev/null
+++ b/dbrepo-metadata-service/rest-service/src/test/resources/json/ext_orcid_jdoe.json
@@ -0,0 +1 @@
+{"affiliations":[{"organization_name":"TU Graz","ringggold_id":null,"isni_id":null,"crossref_funder_id":null}],"type":"Personal","given_names":"John","family_name":"Doe"}
\ No newline at end of file
diff --git a/dbrepo-metadata-service/services/src/main/java/at/tuwien/config/JacksonConfig.java b/dbrepo-metadata-service/services/src/main/java/at/tuwien/config/JacksonConfig.java
index 69777fe635b103c1f3b4380f31ba11bcdc92a878..2379e8d74c1846ea2e59812f0436bd1f740cf2c0 100644
--- a/dbrepo-metadata-service/services/src/main/java/at/tuwien/config/JacksonConfig.java
+++ b/dbrepo-metadata-service/services/src/main/java/at/tuwien/config/JacksonConfig.java
@@ -23,7 +23,6 @@ public class JacksonConfig {
         objectMapper.registerModule(new Jdk8Module());
         objectMapper.registerModule(new JavaTimeModule());
         objectMapper.configure(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS, false);
-        objectMapper.configure(EnumFeature.WRITE_ENUMS_TO_LOWERCASE, true);
         objectMapper.setTimeZone(TimeZone.getTimeZone("UTC"));
         log.debug("current time is {}", objectMapper.writeValueAsString(new Date()));
         return objectMapper;
diff --git a/dbrepo-metadata-service/test/src/main/java/at/tuwien/test/BaseTest.java b/dbrepo-metadata-service/test/src/main/java/at/tuwien/test/BaseTest.java
index fe9a744280e4a0ffb7e3e198952cd729e45076d4..c6a049806f2401ac62c3129aa67cb2b4b91b0140 100644
--- a/dbrepo-metadata-service/test/src/main/java/at/tuwien/test/BaseTest.java
+++ b/dbrepo-metadata-service/test/src/main/java/at/tuwien/test/BaseTest.java
@@ -27,6 +27,16 @@ import at.tuwien.api.keycloak.UserCreateDto;
 import at.tuwien.api.maintenance.BannerMessageCreateDto;
 import at.tuwien.api.maintenance.BannerMessageTypeDto;
 import at.tuwien.api.maintenance.BannerMessageUpdateDto;
+import at.tuwien.api.orcid.OrcidDto;
+import at.tuwien.api.orcid.activities.OrcidActivitiesSummaryDto;
+import at.tuwien.api.orcid.activities.employments.OrcidEmploymentsDto;
+import at.tuwien.api.orcid.activities.employments.affiliation.OrcidAffiliationGroupDto;
+import at.tuwien.api.orcid.activities.employments.affiliation.group.OrcidEmploymentSummaryDto;
+import at.tuwien.api.orcid.activities.employments.affiliation.group.summary.OrcidSummaryDto;
+import at.tuwien.api.orcid.activities.employments.affiliation.group.summary.organization.OrcidOrganizationDto;
+import at.tuwien.api.orcid.person.OrcidPersonDto;
+import at.tuwien.api.orcid.person.name.OrcidNameDto;
+import at.tuwien.api.orcid.person.name.OrcidValueDto;
 import at.tuwien.api.semantics.OntologyCreateDto;
 import at.tuwien.api.semantics.OntologyModifyDto;
 import at.tuwien.api.user.*;
@@ -5728,6 +5738,36 @@ public abstract class BaseTest {
     public final static Instant CREATOR_1_CREATED = Instant.ofEpochSecond(1641588352);
     public final static Instant CREATOR_1_MODIFIED = Instant.ofEpochSecond(1541588352);
 
+    public final static OrcidDto ORCID_1_DTO = OrcidDto.builder()
+            .person(OrcidPersonDto.builder()
+                    .name(OrcidNameDto.builder()
+                            .givenNames(OrcidValueDto.builder()
+                                    .value(USER_1_FIRSTNAME)
+                                    .build())
+                            .familyName(OrcidValueDto.builder()
+                                    .value(USER_1_LASTNAME)
+                                    .build())
+                            .build())
+                    .build())
+            .activitiesSummary(OrcidActivitiesSummaryDto.builder()
+                    .employments(OrcidEmploymentsDto.builder()
+                            .affiliationGroup(new OrcidAffiliationGroupDto[]{
+                                    OrcidAffiliationGroupDto.builder()
+                                            .summaries(new OrcidEmploymentSummaryDto[]{
+                                                    OrcidEmploymentSummaryDto.builder()
+                                                            .employmentSummary(OrcidSummaryDto.builder()
+                                                                    .organization(OrcidOrganizationDto.builder()
+                                                                            .name(USER_1_AFFILIATION)
+                                                                            .build())
+                                                                    .build())
+                                                            .build()
+                                            })
+                                            .build()
+                            })
+                            .build())
+                    .build())
+            .build();
+
     public final static Long CREATOR_2_ID = 2L;
     public final static Long CREATOR_2_QUERY_ID = 1L;
     public final static String CREATOR_2_ORCID = "00000-00000-00000";
diff --git a/dbrepo-ui/components/dialogs/Semantics.vue b/dbrepo-ui/components/dialogs/Semantics.vue
index 18fdbe478840087c11d0f9c2c4baf929f4d6d7f0..4245bd56e5ad369cb5a54288263bbb962954a89c 100644
--- a/dbrepo-ui/components/dialogs/Semantics.vue
+++ b/dbrepo-ui/components/dialogs/Semantics.vue
@@ -160,6 +160,7 @@ export default {
   },
   watch: {
     column () {
+      this.recommendations = []
       this.init()
     },
     recommendation (index) {
@@ -171,6 +172,7 @@ export default {
     }
   },
   mounted () {
+    this.recommendations = []
     this.init()
   },
   methods: {
diff --git a/dbrepo-ui/components/search/AdvancedSearch.vue b/dbrepo-ui/components/search/AdvancedSearch.vue
index 2a89bb91efe40b170f71ee0ac3ab44e5bfd9e8c1..13f0e8624358f9ead8e36081c8c59f926a447df1 100644
--- a/dbrepo-ui/components/search/AdvancedSearch.vue
+++ b/dbrepo-ui/components/search/AdvancedSearch.vue
@@ -70,11 +70,11 @@
               clearable />
           </v-col>
         </v-row>
-        <p v-if="isColumnFilter" class="mt-4">
+        <p v-if="isEligibleConceptOrUnitSearch" class="mt-4">
           If you select a <code>concept</code> and <code>unit</code>, you can search across columns regardless of their
           unit of measurement.
         </p>
-        <v-row v-if="isColumnFilter" dense>
+        <v-row v-if="isEligibleConceptOrUnitSearch" dense>
           <v-col cols="3">
             <v-select
               v-model="advancedSearchData['concept.uri']"
@@ -167,8 +167,8 @@ export default {
         hideInternalNameField: ['identifier', 'user', 'concept', 'unit'].includes(selectedOption)
       }
     },
-    isColumnFilter () {
-      return this.advancedSearchData.type === 'column'
+    isEligibleConceptOrUnitSearch () {
+      return ['column'].includes(this.advancedSearchData.type)
     }
   },
   watch: {
@@ -251,7 +251,7 @@ export default {
         identifier: [
           'creators.properties.creator_name', 'creators.properties.name_identifier',
           'descriptions.properties.description', 'doi', 'funders.properties.funder_identifier',
-          'licenses', 'publication_year', 'titles.properties.title', 'visibility'
+          'publication_year', 'titles.properties.title', 'visibility'
         ],
         view: ['is_public', 'query'],
         concept: ['uri'],