From 2593543a01d6957cbfe3c54afeeb778df91c7a02 Mon Sep 17 00:00:00 2001
From: Martin Weise <martin.weise@tuwien.ac.at>
Date: Wed, 19 Feb 2025 18:10:11 +0100
Subject: [PATCH] Use UUIDs, WIP

Signed-off-by: Martin Weise <martin.weise@tuwien.ac.at>
---
 .../at/tuwien/endpoints/AccessEndpoint.java   |   8 +-
 .../at/tuwien/endpoints/DatabaseEndpoint.java |   3 +-
 .../at/tuwien/endpoints/SubsetEndpoint.java   |  26 +-
 .../at/tuwien/endpoints/TableEndpoint.java    |  49 +-
 .../at/tuwien/endpoints/ViewEndpoint.java     |  30 +-
 .../endpoint/SubsetEndpointUnitTest.java      |  42 +-
 .../endpoint/TableEndpointUnitTest.java       |  12 +-
 .../tuwien/endpoint/ViewEndpointUnitTest.java |   6 +-
 .../tuwien/mvc/PrometheusEndpointMvcTest.java |  52 +-
 .../ContainerServiceIntegrationTest.java      |   2 +-
 .../DatabaseServiceIntegrationTest.java       |  17 +-
 .../service/SubsetServiceIntegrationTest.java |  19 +-
 .../gateway/MetadataServiceGateway.java       |  14 +-
 .../impl/MetadataServiceGatewayImpl.java      |  15 +-
 .../at/tuwien/listener/DefaultListener.java   |   5 +-
 .../java/at/tuwien/mapper/DataMapper.java     |   2 +-
 .../java/at/tuwien/mapper/MariaDbMapper.java  |   8 +-
 .../java/at/tuwien/mapper/MetadataMapper.java |   4 +-
 .../at/tuwien/service/CredentialService.java  |  12 +-
 .../at/tuwien/service/MetricsService.java     |   8 +-
 .../java/at/tuwien/service/SubsetService.java |  15 +-
 .../impl/ContainerServiceMariaDbImpl.java     |   4 -
 .../service/impl/CredentialServiceImpl.java   |  30 +-
 .../impl/MetricsServicePrometheusImpl.java    |  10 +-
 .../impl/SubsetServiceMariaDbImpl.java        |  21 +-
 dbrepo-metadata-db/1_setup-schema.sql         | 722 ++++++++--------
 .../at/tuwien/api/auth/CredentialDto.java     |  31 -
 .../at/tuwien/api/auth/JwtResponseDto.java    |  36 -
 .../at/tuwien/api/auth/KeycloakErrorDto.java  |  31 -
 .../at/tuwien/api/auth/LoginRequestDto.java   |  26 -
 .../api/auth/RefreshTokenRequestDto.java      |  24 -
 .../tuwien/api/auth/TokenIntrospectDto.java   |  83 --
 .../api/container/ContainerBriefDto.java      |   5 +-
 .../at/tuwien/api/container/ContainerDto.java |   5 +-
 .../api/container/CreateContainerDto.java     |   6 +-
 .../api/container/image/ImageBriefDto.java    |  11 +-
 .../tuwien/api/container/image/ImageDto.java  |  26 +-
 .../api/container/image/OperatorDto.java      |   4 +-
 .../api/database/CreateDatabaseDto.java       |   6 +-
 .../api/database/DatabaseAccessDto.java       |   2 +-
 .../tuwien/api/database/DatabaseBriefDto.java |   4 +-
 .../at/tuwien/api/database/DatabaseDto.java   |   5 +-
 .../tuwien/api/database/SubjectModifyDto.java |  24 -
 .../at/tuwien/api/database/ViewBriefDto.java  |   8 +-
 .../at/tuwien/api/database/ViewColumnDto.java |  10 +-
 .../java/at/tuwien/api/database/ViewDto.java  |   9 +-
 .../database/internal/CreateDatabaseDto.java  |   4 +-
 .../query/ExecuteInternalQueryDto.java        |  21 -
 .../api/database/query/QueryBriefDto.java     |   7 +-
 .../tuwien/api/database/query/QueryDto.java   |   9 +-
 .../api/database/table/TableBriefDto.java     |   8 +-
 .../tuwien/api/database/table/TableDto.java   |   9 +-
 .../api/database/table/TableKeyDto.java       |  24 -
 .../table/columns/ColumnBriefDto.java         |  14 +-
 .../api/database/table/columns/ColumnDto.java |  13 +-
 .../columns/concepts/ConceptBriefDto.java     |   6 +-
 .../table/columns/concepts/ConceptDto.java    |   5 +-
 .../table/columns/concepts/UnitBriefDto.java  |   6 +-
 .../table/columns/concepts/UnitDto.java       |   5 +-
 .../foreign/ForeignKeyBriefDto.java           |   6 +-
 .../constraints/foreign/ForeignKeyDto.java    |   5 +-
 .../foreign/ForeignKeyReferenceDto.java       |   6 +-
 .../constraints/primary/PrimaryKeyDto.java    |   6 +-
 .../table/constraints/unique/UniqueDto.java   |   5 +-
 .../api/identifier/CreateIdentifierDto.java   |  11 +-
 .../api/identifier/CreatorBriefDto.java       |   6 +-
 .../at/tuwien/api/identifier/CreatorDto.java  |   6 +-
 .../api/identifier/IdentifierBriefDto.java    |  12 +-
 .../identifier/IdentifierDescriptionDto.java  |   6 +-
 .../tuwien/api/identifier/IdentifierDto.java  |  21 +-
 .../api/identifier/IdentifierFunderDto.java   |   6 +-
 .../api/identifier/IdentifierSaveDto.java     |  15 +-
 .../api/identifier/IdentifierTitleDto.java    |   6 +-
 .../api/identifier/RelatedIdentifierDto.java  |   5 +-
 .../identifier/SaveIdentifierCreatorDto.java  |   6 +-
 .../SaveIdentifierDescriptionDto.java         |   6 +-
 .../identifier/SaveIdentifierFunderDto.java   |   6 +-
 .../identifier/SaveIdentifierTitleDto.java    |   6 +-
 .../identifier/SaveRelatedIdentifierDto.java  |   6 +-
 .../api/maintenance/BannerMessageDto.java     |   5 +-
 .../api/semantics/OntologyBriefDto.java       |   5 +-
 .../at/tuwien/api/semantics/OntologyDto.java  |   4 +-
 .../api/semantics/TableColumnEntityDto.java   |  14 +-
 .../tuwien/entities/container/Container.java  |   8 +-
 .../container/image/ContainerImage.java       |   8 +-
 .../entities/container/image/DataType.java    |   9 +-
 .../entities/container/image/Operator.java    |   9 +-
 .../at/tuwien/entities/database/Database.java |  10 +-
 .../entities/database/DatabaseAccess.java     |   5 +-
 .../entities/database/DatabaseAccessKey.java  |   2 +-
 .../at/tuwien/entities/database/View.java     |  13 +-
 .../tuwien/entities/database/ViewColumn.java  |   9 +-
 .../tuwien/entities/database/table/Table.java |   8 +-
 .../database/table/columns/TableColumn.java   |   8 +-
 .../table/columns/TableColumnConcept.java     |   8 +-
 .../table/columns/TableColumnUnit.java        |   8 +-
 .../constraints/foreignKey/ForeignKey.java    |  10 +-
 .../foreignKey/ForeignKeyReference.java       |   9 +-
 .../constraints/primaryKey/PrimaryKey.java    |   9 +-
 .../table/constraints/unique/Unique.java      |  10 +-
 .../tuwien/entities/identifier/Creator.java   |  10 +-
 .../entities/identifier/Identifier.java       |  18 +-
 .../identifier/IdentifierDescription.java     |   9 +-
 .../entities/identifier/IdentifierFunder.java |   8 +-
 .../entities/identifier/IdentifierTitle.java  |   8 +-
 .../identifier/RelatedIdentifier.java         |  11 +-
 .../entities/maintenance/BannerMessage.java   |  10 +-
 .../tuwien/entities/semantics/Ontology.java   |   8 +-
 .../repository/BannerMessageRepository.java   |   3 +-
 .../tuwien/repository/ConceptRepository.java  |   3 +-
 .../repository/ContainerRepository.java       |   3 +-
 .../tuwien/repository/DatabaseRepository.java |   2 +-
 .../repository/IdentifierRepository.java      |  11 +-
 .../at/tuwien/repository/ImageRepository.java |   4 +-
 .../tuwien/repository/OntologyRepository.java |   3 +-
 .../at/tuwien/repository/TableRepository.java |   4 +-
 .../at/tuwien/repository/UnitRepository.java  |   3 +-
 .../at/tuwien/repository/ViewRepository.java  |   4 +-
 .../at/tuwien/endpoints/AccessEndpoint.java   |  16 +-
 .../tuwien/endpoints/ContainerEndpoint.java   |  10 +-
 .../at/tuwien/endpoints/DatabaseEndpoint.java |  15 +-
 .../tuwien/endpoints/IdentifierEndpoint.java  |  17 +-
 .../at/tuwien/endpoints/ImageEndpoint.java    |  13 +-
 .../at/tuwien/endpoints/MessageEndpoint.java  |   7 +-
 .../at/tuwien/endpoints/OntologyEndpoint.java |   9 +-
 .../at/tuwien/endpoints/TableEndpoint.java    |  37 +-
 .../at/tuwien/endpoints/ViewEndpoint.java     |  17 +-
 .../endpoints/AccessEndpointUnitTest.java     |   2 +-
 .../endpoints/ContainerEndpointUnitTest.java  |  10 +-
 .../endpoints/DatabaseEndpointUnitTest.java   |   8 +-
 .../endpoints/IdentifierEndpointUnitTest.java |  43 +-
 .../endpoints/ImageEndpointUnitTest.java      |   7 +-
 .../endpoints/MessageEndpointUnitTest.java    |   7 +-
 .../endpoints/OntologyEndpointUnitTest.java   |  18 +-
 .../endpoints/TableEndpointUnitTest.java      |  21 +-
 .../endpoints/UserEndpointUnitTest.java       |   8 -
 .../endpoints/ViewEndpointUnitTest.java       |  12 +-
 .../tuwien/mapper/MetadataMapperUnitTest.java |   2 +-
 .../tuwien/mvc/PrometheusEndpointMvcTest.java |  46 -
 .../service/ContainerServiceUnitTest.java     |  14 +-
 ...aCiteIdentifierServicePersistenceTest.java |   3 +-
 .../service/DatabaseServiceUnitTest.java      |   8 +-
 .../IdentifierServicePersistenceTest.java     |  34 +-
 .../service/MessageServiceUnitTest.java       |   5 +-
 .../service/MetadataServiceUnitTest.java      |  16 +-
 .../service/TableServicePersistenceTest.java  |   3 +-
 .../tuwien/service/ViewServiceUnitTest.java   |   7 +-
 .../validator/EndpointValidatorUnitTest.java  |   6 +-
 .../at/tuwien/gateway/DataServiceGateway.java |  28 +-
 .../tuwien/gateway/SearchServiceGateway.java  |   4 +-
 .../gateway/impl/DataServiceGatewayImpl.java  |  28 +-
 .../impl/SearchServiceGatewayImpl.java        |   4 +-
 .../tuwien/service/BannerMessageService.java  |   3 +-
 .../at/tuwien/service/ContainerService.java   |   7 +-
 .../at/tuwien/service/DatabaseService.java    |   2 +-
 .../at/tuwien/service/IdentifierService.java  |  10 +-
 .../java/at/tuwien/service/ImageService.java  |   3 +-
 .../at/tuwien/service/OntologyService.java    |   3 +-
 .../java/at/tuwien/service/TableService.java  |   5 +-
 .../java/at/tuwien/service/ViewService.java   |   4 +-
 .../impl/BannerMessageServiceImpl.java        |   3 +-
 .../service/impl/ContainerServiceImpl.java    |   3 +-
 .../impl/DataCiteIdentifierServiceImpl.java   |   9 +-
 .../service/impl/DatabaseServiceImpl.java     |   2 +-
 .../service/impl/IdentifierServiceImpl.java   |  13 +-
 .../tuwien/service/impl/ImageServiceImpl.java |   3 +-
 .../service/impl/MetadataServiceImpl.java     |   3 +-
 .../service/impl/OntologyServiceImpl.java     |   3 +-
 .../tuwien/service/impl/TableServiceImpl.java |   9 +-
 .../tuwien/service/impl/ViewServiceImpl.java  |   3 +-
 .../main/java/at/tuwien/test/BaseTest.java    | 801 ++++++++----------
 171 files changed, 1536 insertions(+), 1906 deletions(-)
 delete mode 100644 dbrepo-metadata-service/api/src/main/java/at/tuwien/api/auth/CredentialDto.java
 delete mode 100644 dbrepo-metadata-service/api/src/main/java/at/tuwien/api/auth/JwtResponseDto.java
 delete mode 100644 dbrepo-metadata-service/api/src/main/java/at/tuwien/api/auth/KeycloakErrorDto.java
 delete mode 100644 dbrepo-metadata-service/api/src/main/java/at/tuwien/api/auth/LoginRequestDto.java
 delete mode 100644 dbrepo-metadata-service/api/src/main/java/at/tuwien/api/auth/RefreshTokenRequestDto.java
 delete mode 100644 dbrepo-metadata-service/api/src/main/java/at/tuwien/api/auth/TokenIntrospectDto.java
 delete mode 100644 dbrepo-metadata-service/api/src/main/java/at/tuwien/api/database/SubjectModifyDto.java
 delete mode 100644 dbrepo-metadata-service/api/src/main/java/at/tuwien/api/database/query/ExecuteInternalQueryDto.java
 delete mode 100644 dbrepo-metadata-service/api/src/main/java/at/tuwien/api/database/table/TableKeyDto.java

diff --git a/dbrepo-data-service/rest-service/src/main/java/at/tuwien/endpoints/AccessEndpoint.java b/dbrepo-data-service/rest-service/src/main/java/at/tuwien/endpoints/AccessEndpoint.java
index 4d3803a1e1..84d04971e3 100644
--- a/dbrepo-data-service/rest-service/src/main/java/at/tuwien/endpoints/AccessEndpoint.java
+++ b/dbrepo-data-service/rest-service/src/main/java/at/tuwien/endpoints/AccessEndpoint.java
@@ -74,7 +74,7 @@ public class AccessEndpoint extends RestEndpoint {
                             mediaType = "application/json",
                             schema = @Schema(implementation = ApiErrorDto.class))}),
     })
-    public ResponseEntity<Void> create(@NotNull @PathVariable("databaseId") Long databaseId,
+    public ResponseEntity<Void> create(@NotNull @PathVariable("databaseId") UUID databaseId,
                                        @PathVariable("userId") UUID userId,
                                        @Valid @RequestBody CreateAccessDto data)
             throws NotAllowedException, DatabaseUnavailableException, DatabaseNotFoundException,
@@ -130,7 +130,7 @@ public class AccessEndpoint extends RestEndpoint {
                             mediaType = "application/json",
                             schema = @Schema(implementation = ApiErrorDto.class))}),
     })
-    public ResponseEntity<Void> update(@NotNull @PathVariable("databaseId") Long databaseId,
+    public ResponseEntity<Void> update(@NotNull @PathVariable("databaseId") UUID databaseId,
                                        @PathVariable("userId") UUID userId,
                                        @Valid @RequestBody CreateAccessDto access) throws NotAllowedException,
             DatabaseUnavailableException, DatabaseNotFoundException, RemoteUnavailableException, UserNotFoundException,
@@ -162,7 +162,7 @@ public class AccessEndpoint extends RestEndpoint {
             @ApiResponse(responseCode = "202",
                     description = "Invalidated access cache succeeded")
     })
-    public ResponseEntity<Void> invalidateAccess(@NotNull @PathVariable("databaseId") Long databaseId) {
+    public ResponseEntity<Void> invalidateAccess(@NotNull @PathVariable("databaseId") UUID databaseId) {
         log.debug("endpoint empty access cache for database, databaseId={}", databaseId);
         credentialService.invalidateAccess(databaseId);
         return ResponseEntity.accepted()
@@ -203,7 +203,7 @@ public class AccessEndpoint extends RestEndpoint {
                             mediaType = "application/json",
                             schema = @Schema(implementation = ApiErrorDto.class))}),
     })
-    public ResponseEntity<Void> revoke(@NotNull @PathVariable("databaseId") Long databaseId,
+    public ResponseEntity<Void> revoke(@NotNull @PathVariable("databaseId") UUID databaseId,
                                        @PathVariable("userId") UUID userId) throws NotAllowedException,
             DatabaseUnavailableException, DatabaseNotFoundException, RemoteUnavailableException, UserNotFoundException,
             DatabaseMalformedException, MetadataServiceException {
diff --git a/dbrepo-data-service/rest-service/src/main/java/at/tuwien/endpoints/DatabaseEndpoint.java b/dbrepo-data-service/rest-service/src/main/java/at/tuwien/endpoints/DatabaseEndpoint.java
index 27848cf517..0d12384dfa 100644
--- a/dbrepo-data-service/rest-service/src/main/java/at/tuwien/endpoints/DatabaseEndpoint.java
+++ b/dbrepo-data-service/rest-service/src/main/java/at/tuwien/endpoints/DatabaseEndpoint.java
@@ -28,6 +28,7 @@ import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.web.bind.annotation.*;
 
 import java.sql.SQLException;
+import java.util.UUID;
 
 @Log4j2
 @RestController
@@ -128,7 +129,7 @@ public class DatabaseEndpoint extends RestEndpoint {
                             mediaType = "application/json",
                             schema = @Schema(implementation = ApiErrorDto.class))}),
     })
-    public ResponseEntity<Void> update(@NotNull @PathVariable("databaseId") Long databaseId,
+    public ResponseEntity<Void> update(@NotNull @PathVariable("databaseId") UUID databaseId,
                                        @Valid @RequestBody UpdateUserPasswordDto data)
             throws DatabaseUnavailableException, DatabaseNotFoundException, RemoteUnavailableException,
             DatabaseMalformedException, MetadataServiceException {
diff --git a/dbrepo-data-service/rest-service/src/main/java/at/tuwien/endpoints/SubsetEndpoint.java b/dbrepo-data-service/rest-service/src/main/java/at/tuwien/endpoints/SubsetEndpoint.java
index 7f1f516495..0ca1ee86b8 100644
--- a/dbrepo-data-service/rest-service/src/main/java/at/tuwien/endpoints/SubsetEndpoint.java
+++ b/dbrepo-data-service/rest-service/src/main/java/at/tuwien/endpoints/SubsetEndpoint.java
@@ -100,7 +100,7 @@ public class SubsetEndpoint extends RestEndpoint {
                             mediaType = "application/json",
                             schema = @Schema(implementation = ApiErrorDto.class))}),
     })
-    public ResponseEntity<List<QueryDto>> list(@NotNull @PathVariable("databaseId") Long databaseId,
+    public ResponseEntity<List<QueryDto>> list(@NotNull @PathVariable("databaseId") UUID databaseId,
                                                @RequestParam(name = "persisted", required = false) Boolean filterPersisted,
                                                Principal principal)
             throws DatabaseUnavailableException, DatabaseNotFoundException, RemoteUnavailableException,
@@ -157,8 +157,8 @@ public class SubsetEndpoint extends RestEndpoint {
                             mediaType = "application/json",
                             schema = @Schema(implementation = ApiErrorDto.class))}),
     })
-    public ResponseEntity<?> findById(@NotNull @PathVariable("databaseId") Long databaseId,
-                                      @NotNull @PathVariable("subsetId") Long subsetId,
+    public ResponseEntity<?> findById(@NotNull @PathVariable("databaseId") UUID databaseId,
+                                      @NotNull @PathVariable("subsetId") UUID subsetId,
                                       @NotNull @RequestHeader("Accept") String accept,
                                       @RequestParam(required = false) Instant timestamp,
                                       Principal principal)
@@ -192,7 +192,7 @@ public class SubsetEndpoint extends RestEndpoint {
             case "text/csv":
                 log.trace("accept header matches csv");
                 final String query = mariaDbMapper.rawSelectQuery(subset.getQuery(), timestamp, null, null);
-                final Dataset<Row> dataset = subsetService.getData(database, query, timestamp, null, null, null, null);
+                final Dataset<Row> dataset = subsetService.getData(database, query);
                 metricsService.countSubsetGetData(databaseId, subsetId);
                 final ExportResourceDto resource = storageService.transformDataset(dataset);
                 final HttpHeaders headers = new HttpHeaders();
@@ -247,7 +247,7 @@ public class SubsetEndpoint extends RestEndpoint {
                             mediaType = "application/json",
                             schema = @Schema(implementation = ApiErrorDto.class))}),
     })
-    public ResponseEntity<List<Map<String, Object>>> create(@NotNull @PathVariable("databaseId") Long databaseId,
+    public ResponseEntity<List<Map<String, Object>>> create(@NotNull @PathVariable("databaseId") UUID databaseId,
                                                             @Valid @RequestBody ExecuteStatementDto data,
                                                             Principal principal,
                                                             @NotNull HttpServletRequest request,
@@ -288,7 +288,7 @@ public class SubsetEndpoint extends RestEndpoint {
         final DatabaseDto database = credentialService.getDatabase(databaseId);
         endpointValidator.validateOnlyPrivateSchemaAccess(database, principal);
         try {
-            final Long subsetId = subsetService.create(database, data.getStatement(), timestamp, userId);
+            final UUID subsetId = subsetService.create(database, data.getStatement(), timestamp, userId);
             return getData(databaseId, subsetId, principal, request, timestamp, page, size);
         } catch (SQLException e) {
             log.error("Failed to establish connection to database: {}", e.getMessage());
@@ -304,9 +304,9 @@ public class SubsetEndpoint extends RestEndpoint {
     @ApiResponses(value = {
             @ApiResponse(responseCode = "200",
                     description = "Retrieved subset data",
-                    headers = {@Header(name = "X-Count", description = "Number of rows", schema = @Schema(implementation = Long.class)),
+                    headers = {@Header(name = "X-Count", description = "Number of rows", schema = @Schema(implementation = UUID.class)),
                             @Header(name = "X-Headers", description = "The list of headers separated by comma", schema = @Schema(implementation = String.class)),
-                            @Header(name = "X-Id", description = "The subset id", schema = @Schema(implementation = Long.class), required = true),
+                            @Header(name = "X-Id", description = "The subset id", schema = @Schema(implementation = UUID.class), required = true),
                             @Header(name = "Access-Control-Expose-Headers", description = "Reverse proxy exposing of custom headers", schema = @Schema(implementation = String.class), required = true)},
                     content = {@Content(
                             mediaType = "application/json",
@@ -332,8 +332,8 @@ public class SubsetEndpoint extends RestEndpoint {
                             mediaType = "application/json",
                             schema = @Schema(implementation = ApiErrorDto.class))}),
     })
-    public ResponseEntity<List<Map<String, Object>>> getData(@NotNull @PathVariable("databaseId") Long databaseId,
-                                                             @NotNull @PathVariable("subsetId") Long subsetId,
+    public ResponseEntity<List<Map<String, Object>>> getData(@NotNull @PathVariable("databaseId") UUID databaseId,
+                                                             @NotNull @PathVariable("subsetId") UUID subsetId,
                                                              Principal principal,
                                                              @NotNull HttpServletRequest request,
                                                              @RequestParam(required = false) Instant timestamp,
@@ -381,7 +381,7 @@ public class SubsetEndpoint extends RestEndpoint {
                         .build();
             }
             final String query = mariaDbMapper.rawSelectQuery(subset.getQuery(), timestamp, page, size);
-            final Dataset<Row> dataset = subsetService.getData(database, query, timestamp, page, size, null, null);
+            final Dataset<Row> dataset = subsetService.getData(database, query);
             metricsService.countSubsetGetData(databaseId, subsetId);
             final String viewName = metadataMapper.queryDtoToViewName(subset);
             databaseService.createView(database, CreateViewDto.builder()
@@ -440,8 +440,8 @@ public class SubsetEndpoint extends RestEndpoint {
                             mediaType = "application/json",
                             schema = @Schema(implementation = ApiErrorDto.class))}),
     })
-    public ResponseEntity<QueryDto> persist(@NotNull @PathVariable("databaseId") Long databaseId,
-                                            @NotNull @PathVariable("queryId") Long queryId,
+    public ResponseEntity<QueryDto> persist(@NotNull @PathVariable("databaseId") UUID databaseId,
+                                            @NotNull @PathVariable("queryId") UUID queryId,
                                             @NotNull @Valid @RequestBody QueryPersistDto data,
                                             @NotNull Principal principal) throws NotAllowedException,
             RemoteUnavailableException, DatabaseNotFoundException, QueryStorePersistException,
diff --git a/dbrepo-data-service/rest-service/src/main/java/at/tuwien/endpoints/TableEndpoint.java b/dbrepo-data-service/rest-service/src/main/java/at/tuwien/endpoints/TableEndpoint.java
index 82ed0a96f7..fc7dd5be79 100644
--- a/dbrepo-data-service/rest-service/src/main/java/at/tuwien/endpoints/TableEndpoint.java
+++ b/dbrepo-data-service/rest-service/src/main/java/at/tuwien/endpoints/TableEndpoint.java
@@ -41,6 +41,7 @@ import java.sql.SQLException;
 import java.time.Instant;
 import java.util.List;
 import java.util.Map;
+import java.util.UUID;
 
 @Log4j2
 @RestController
@@ -106,7 +107,7 @@ public class TableEndpoint extends RestEndpoint {
                             mediaType = "application/json",
                             schema = @Schema(implementation = ApiErrorDto.class))}),
     })
-    public ResponseEntity<TableDto> create(@NotNull @PathVariable("databaseId") Long databaseId,
+    public ResponseEntity<TableDto> create(@NotNull @PathVariable("databaseId") UUID databaseId,
                                            @Valid @RequestBody TableCreateDto data) throws DatabaseNotFoundException,
             RemoteUnavailableException, TableMalformedException, DatabaseUnavailableException, TableExistsException,
             TableNotFoundException, QueryMalformedException, MetadataServiceException, ContainerNotFoundException {
@@ -155,8 +156,8 @@ public class TableEndpoint extends RestEndpoint {
                             mediaType = "application/json",
                             schema = @Schema(implementation = ApiErrorDto.class))}),
     })
-    public ResponseEntity<TableDto> update(@NotNull @PathVariable("databaseId") Long databaseId,
-                                           @NotNull @PathVariable("tableId") Long tableId,
+    public ResponseEntity<TableDto> update(@NotNull @PathVariable("databaseId") UUID databaseId,
+                                           @NotNull @PathVariable("tableId") UUID tableId,
                                            @Valid @RequestBody TableUpdateDto data) throws RemoteUnavailableException,
             TableMalformedException, DatabaseUnavailableException, TableNotFoundException, MetadataServiceException {
         log.debug("endpoint update table, databaseId={}, data.description={}", databaseId, data.getDescription());
@@ -199,8 +200,8 @@ public class TableEndpoint extends RestEndpoint {
                             mediaType = "application/json",
                             schema = @Schema(implementation = ApiErrorDto.class))}),
     })
-    public ResponseEntity<Void> delete(@NotNull @PathVariable("databaseId") Long databaseId,
-                                       @NotNull @PathVariable("tableId") Long tableId)
+    public ResponseEntity<Void> delete(@NotNull @PathVariable("databaseId") UUID databaseId,
+                                       @NotNull @PathVariable("tableId") UUID tableId)
             throws DatabaseUnavailableException, RemoteUnavailableException, TableNotFoundException,
             QueryMalformedException, MetadataServiceException {
         log.debug("endpoint delete table, databaseId={}, tableId={}", databaseId, tableId);
@@ -249,8 +250,8 @@ public class TableEndpoint extends RestEndpoint {
                             mediaType = "application/json",
                             schema = @Schema(implementation = ApiErrorDto.class))}),
     })
-    public ResponseEntity<List<Map<String, Object>>> getData(@NotNull @PathVariable("databaseId") Long databaseId,
-                                                             @NotNull @PathVariable("tableId") Long tableId,
+    public ResponseEntity<List<Map<String, Object>>> getData(@NotNull @PathVariable("databaseId") UUID databaseId,
+                                                             @NotNull @PathVariable("tableId") UUID tableId,
                                                              @RequestParam(required = false) Instant timestamp,
                                                              @RequestParam(required = false) Long page,
                                                              @RequestParam(required = false) Long size,
@@ -296,7 +297,7 @@ public class TableEndpoint extends RestEndpoint {
             final String query = mariaDbMapper.defaultRawSelectQuery(table.getDatabase().getInternalName(),
                     table.getInternalName(), timestamp, page, size);
             final Dataset<Row> dataset = subsetService.getData(credentialService.getDatabase(table.getTdbid()),
-                    query, timestamp, page, size, null, null);
+                    query);
             metricsService.countTableGetData(databaseId, tableId);
             return ResponseEntity.ok()
                     .headers(headers)
@@ -337,8 +338,8 @@ public class TableEndpoint extends RestEndpoint {
                             mediaType = "application/json",
                             schema = @Schema(implementation = ApiErrorDto.class))}),
     })
-    public ResponseEntity<Void> insertRawTuple(@NotNull @PathVariable("databaseId") Long databaseId,
-                                               @NotNull @PathVariable("tableId") Long tableId,
+    public ResponseEntity<Void> insertRawTuple(@NotNull @PathVariable("databaseId") UUID databaseId,
+                                               @NotNull @PathVariable("tableId") UUID tableId,
                                                @Valid @RequestBody TupleDto data,
                                                @NotNull Principal principal,
                                                @RequestHeader("Authorization") String authorization)
@@ -390,8 +391,8 @@ public class TableEndpoint extends RestEndpoint {
                             mediaType = "application/json",
                             schema = @Schema(implementation = ApiErrorDto.class))}),
     })
-    public ResponseEntity<Void> updateRawTuple(@NotNull @PathVariable("databaseId") Long databaseId,
-                                               @NotNull @PathVariable("tableId") Long tableId,
+    public ResponseEntity<Void> updateRawTuple(@NotNull @PathVariable("databaseId") UUID databaseId,
+                                               @NotNull @PathVariable("tableId") UUID tableId,
                                                @Valid @RequestBody TupleUpdateDto data,
                                                @NotNull Principal principal,
                                                @RequestHeader("Authorization") String authorization)
@@ -443,8 +444,8 @@ public class TableEndpoint extends RestEndpoint {
                             mediaType = "application/json",
                             schema = @Schema(implementation = ApiErrorDto.class))}),
     })
-    public ResponseEntity<Void> deleteRawTuple(@NotNull @PathVariable("databaseId") Long databaseId,
-                                               @NotNull @PathVariable("tableId") Long tableId,
+    public ResponseEntity<Void> deleteRawTuple(@NotNull @PathVariable("databaseId") UUID databaseId,
+                                               @NotNull @PathVariable("tableId") UUID tableId,
                                                @Valid @RequestBody TupleDeleteDto data,
                                                @NotNull Principal principal,
                                                @RequestHeader("Authorization") String authorization)
@@ -498,8 +499,8 @@ public class TableEndpoint extends RestEndpoint {
                             mediaType = "application/json",
                             schema = @Schema(implementation = ApiErrorDto.class))}),
     })
-    public ResponseEntity<List<TableHistoryDto>> getHistory(@NotNull @PathVariable("databaseId") Long databaseId,
-                                                            @NotNull @PathVariable("tableId") Long tableId,
+    public ResponseEntity<List<TableHistoryDto>> getHistory(@NotNull @PathVariable("databaseId") UUID databaseId,
+                                                            @NotNull @PathVariable("tableId") UUID tableId,
                                                             @RequestParam(value = "size", required = false) Long size,
                                                             Principal principal) throws DatabaseUnavailableException,
             RemoteUnavailableException, TableNotFoundException, NotAllowedException, MetadataServiceException,
@@ -567,7 +568,7 @@ public class TableEndpoint extends RestEndpoint {
                             mediaType = "application/json",
                             schema = @Schema(implementation = ApiErrorDto.class))}),
     })
-    public ResponseEntity<List<TableDto>> getSchema(@NotNull @PathVariable("databaseId") Long databaseId)
+    public ResponseEntity<List<TableDto>> getSchema(@NotNull @PathVariable("databaseId") UUID databaseId)
             throws DatabaseUnavailableException, DatabaseNotFoundException, RemoteUnavailableException,
             DatabaseMalformedException, TableNotFoundException, MetadataServiceException {
         log.debug("endpoint inspect table schemas, databaseId={}", databaseId);
@@ -612,8 +613,8 @@ public class TableEndpoint extends RestEndpoint {
                             mediaType = "application/json",
                             schema = @Schema(implementation = ApiErrorDto.class))}),
     })
-    public ResponseEntity<InputStreamResource> exportDataset(@NotNull @PathVariable("databaseId") Long databaseId,
-                                                             @NotNull @PathVariable("tableId") Long tableId,
+    public ResponseEntity<InputStreamResource> exportDataset(@NotNull @PathVariable("databaseId") UUID databaseId,
+                                                             @NotNull @PathVariable("tableId") UUID tableId,
                                                              @RequestParam(required = false) Instant timestamp,
                                                              Principal principal)
             throws RemoteUnavailableException, TableNotFoundException, NotAllowedException, StorageUnavailableException,
@@ -635,7 +636,7 @@ public class TableEndpoint extends RestEndpoint {
         final String query = mariaDbMapper.defaultRawSelectQuery(table.getDatabase().getInternalName(),
                 table.getInternalName(), timestamp, null, null);
         final Dataset<Row> dataset = subsetService.getData(credentialService.getDatabase(table.getTdbid()),
-                query, timestamp, null, null, null, null);
+                query);
         metricsService.countTableGetData(databaseId, tableId);
         final ExportResourceDto resource = storageService.transformDataset(dataset);
         final HttpHeaders headers = new HttpHeaders();
@@ -676,8 +677,8 @@ public class TableEndpoint extends RestEndpoint {
                             mediaType = "application/json",
                             schema = @Schema(implementation = ApiErrorDto.class))}),
     })
-    public ResponseEntity<Void> importDataset(@NotNull @PathVariable("databaseId") Long databaseId,
-                                              @NotNull @PathVariable("tableId") Long tableId,
+    public ResponseEntity<Void> importDataset(@NotNull @PathVariable("databaseId") UUID databaseId,
+                                              @NotNull @PathVariable("tableId") UUID tableId,
                                               @Valid @RequestBody ImportDto data,
                                               @NotNull Principal principal,
                                               @RequestHeader("Authorization") String authorization)
@@ -730,8 +731,8 @@ public class TableEndpoint extends RestEndpoint {
                             mediaType = "application/json",
                             schema = @Schema(implementation = ApiErrorDto.class))}),
     })
-    public ResponseEntity<TableStatisticDto> statistic(@NotNull @PathVariable("databaseId") Long databaseId,
-                                                       @NotNull @PathVariable("tableId") Long tableId)
+    public ResponseEntity<TableStatisticDto> statistic(@NotNull @PathVariable("databaseId") UUID databaseId,
+                                                       @NotNull @PathVariable("tableId") UUID tableId)
             throws DatabaseUnavailableException, RemoteUnavailableException, TableNotFoundException,
             MetadataServiceException, TableMalformedException {
         log.debug("endpoint generate table statistic, databaseId={}, tableId={}", databaseId, tableId);
diff --git a/dbrepo-data-service/rest-service/src/main/java/at/tuwien/endpoints/ViewEndpoint.java b/dbrepo-data-service/rest-service/src/main/java/at/tuwien/endpoints/ViewEndpoint.java
index 25dfd50dd4..47b4bb81db 100644
--- a/dbrepo-data-service/rest-service/src/main/java/at/tuwien/endpoints/ViewEndpoint.java
+++ b/dbrepo-data-service/rest-service/src/main/java/at/tuwien/endpoints/ViewEndpoint.java
@@ -37,6 +37,7 @@ import java.sql.SQLException;
 import java.time.Instant;
 import java.util.List;
 import java.util.Map;
+import java.util.UUID;
 
 @Log4j2
 @RestController
@@ -45,7 +46,6 @@ import java.util.Map;
 public class ViewEndpoint extends RestEndpoint {
 
     private final ViewService viewService;
-    private final TableService tableService;
     private final MariaDbMapper mariaDbMapper;
     private final SubsetService subsetService;
     private final MetricsService metricsService;
@@ -55,12 +55,10 @@ public class ViewEndpoint extends RestEndpoint {
     private final EndpointValidator endpointValidator;
 
     @Autowired
-    public ViewEndpoint(ViewService viewService, TableService tableService, MariaDbMapper mariaDbMapper,
-                        SubsetService subsetService, MetricsService metricsService, StorageService storageService,
-                        DatabaseService databaseService, CredentialService credentialService,
-                        EndpointValidator endpointValidator) {
+    public ViewEndpoint(ViewService viewService, MariaDbMapper mariaDbMapper, SubsetService subsetService,
+                        MetricsService metricsService, StorageService storageService, DatabaseService databaseService,
+                        CredentialService credentialService, EndpointValidator endpointValidator) {
         this.viewService = viewService;
-        this.tableService = tableService;
         this.mariaDbMapper = mariaDbMapper;
         this.subsetService = subsetService;
         this.metricsService = metricsService;
@@ -107,7 +105,7 @@ public class ViewEndpoint extends RestEndpoint {
                             mediaType = "application/json",
                             schema = @Schema(implementation = ApiErrorDto.class))}),
     })
-    public ResponseEntity<List<ViewDto>> getSchema(@NotNull @PathVariable("databaseId") Long databaseId)
+    public ResponseEntity<List<ViewDto>> getSchema(@NotNull @PathVariable("databaseId") UUID databaseId)
             throws DatabaseUnavailableException, DatabaseNotFoundException, RemoteUnavailableException,
             DatabaseMalformedException, MetadataServiceException, ViewNotFoundException {
         log.debug("endpoint inspect view schemas, databaseId={}", databaseId);
@@ -152,7 +150,7 @@ public class ViewEndpoint extends RestEndpoint {
                             mediaType = "application/json",
                             schema = @Schema(implementation = ApiErrorDto.class))}),
     })
-    public ResponseEntity<ViewDto> create(@NotNull @PathVariable("databaseId") Long databaseId,
+    public ResponseEntity<ViewDto> create(@NotNull @PathVariable("databaseId") UUID databaseId,
                                           @Valid @RequestBody CreateViewDto data) throws DatabaseUnavailableException,
             DatabaseNotFoundException, RemoteUnavailableException, ViewMalformedException, MetadataServiceException {
         log.debug("endpoint create view, databaseId={}, data.name={}", databaseId, data.getName());
@@ -195,8 +193,8 @@ public class ViewEndpoint extends RestEndpoint {
                             mediaType = "application/json",
                             schema = @Schema(implementation = ApiErrorDto.class))}),
     })
-    public ResponseEntity<Void> delete(@NotNull @PathVariable("databaseId") Long databaseId,
-                                       @NotNull @PathVariable("viewId") Long viewId)
+    public ResponseEntity<Void> delete(@NotNull @PathVariable("databaseId") UUID databaseId,
+                                       @NotNull @PathVariable("viewId") UUID viewId)
             throws DatabaseUnavailableException, RemoteUnavailableException, ViewNotFoundException,
             ViewMalformedException, MetadataServiceException {
         log.debug("endpoint delete view, databaseId={}, viewId={}", databaseId, viewId);
@@ -250,8 +248,8 @@ public class ViewEndpoint extends RestEndpoint {
                             mediaType = "application/json",
                             schema = @Schema(implementation = ApiErrorDto.class))}),
     })
-    public ResponseEntity<List<Map<String, Object>>> getData(@NotNull @PathVariable("databaseId") Long databaseId,
-                                                             @NotNull @PathVariable("viewId") Long viewId,
+    public ResponseEntity<List<Map<String, Object>>> getData(@NotNull @PathVariable("databaseId") UUID databaseId,
+                                                             @NotNull @PathVariable("viewId") UUID viewId,
                                                              @RequestParam(required = false) Long page,
                                                              @RequestParam(required = false) Long size,
                                                              @RequestParam(required = false) Instant timestamp,
@@ -297,7 +295,7 @@ public class ViewEndpoint extends RestEndpoint {
             final String query = mariaDbMapper.defaultRawSelectQuery(view.getDatabase().getInternalName(),
                     view.getInternalName(), timestamp, page, size);
             final Dataset<Row> dataset = subsetService.getData(credentialService.getDatabase(databaseId),
-                    query, timestamp, page, size, null, null);
+                    query);
             metricsService.countViewGetData(databaseId, viewId);
             return ResponseEntity.ok()
                     .headers(headers)
@@ -340,8 +338,8 @@ public class ViewEndpoint extends RestEndpoint {
                             mediaType = "application/json",
                             schema = @Schema(implementation = ApiErrorDto.class))}),
     })
-    public ResponseEntity<InputStreamResource> exportDataset(@NotNull @PathVariable("databaseId") Long databaseId,
-                                                             @NotNull @PathVariable("viewId") Long viewId,
+    public ResponseEntity<InputStreamResource> exportDataset(@NotNull @PathVariable("databaseId") UUID databaseId,
+                                                             @NotNull @PathVariable("viewId") UUID viewId,
                                                              @RequestParam(required = false) Instant timestamp,
                                                              Principal principal)
             throws RemoteUnavailableException, ViewNotFoundException, NotAllowedException, MetadataServiceException,
@@ -364,7 +362,7 @@ public class ViewEndpoint extends RestEndpoint {
         final String query = mariaDbMapper.defaultRawSelectQuery(view.getDatabase().getInternalName(),
                 view.getInternalName(), timestamp, null, null);
         final Dataset<Row> dataset = subsetService.getData(credentialService.getDatabase(databaseId),
-                query, timestamp, null, null, null, null);
+                query);
         metricsService.countViewGetData(databaseId, viewId);
         final ExportResourceDto resource = storageService.transformDataset(dataset);
         final HttpHeaders headers = new HttpHeaders();
diff --git a/dbrepo-data-service/rest-service/src/test/java/at/tuwien/endpoint/SubsetEndpointUnitTest.java b/dbrepo-data-service/rest-service/src/test/java/at/tuwien/endpoint/SubsetEndpointUnitTest.java
index 8837ccb0d1..122811ecec 100644
--- a/dbrepo-data-service/rest-service/src/test/java/at/tuwien/endpoint/SubsetEndpointUnitTest.java
+++ b/dbrepo-data-service/rest-service/src/test/java/at/tuwien/endpoint/SubsetEndpointUnitTest.java
@@ -34,6 +34,7 @@ import java.sql.SQLException;
 import java.time.Instant;
 import java.util.List;
 import java.util.Map;
+import java.util.UUID;
 
 import static org.junit.jupiter.api.Assertions.*;
 import static org.mockito.Mockito.*;
@@ -147,7 +148,9 @@ public class SubsetEndpointUnitTest extends AbstractUnitTest {
     @Test
     @WithMockUser(username = USER_1_USERNAME)
     public void findById_privateDataPrivateSchema_succeeds() throws DatabaseNotFoundException, SQLException,
-            RemoteUnavailableException, UserNotFoundException, QueryNotFoundException, MetadataServiceException, DatabaseUnavailableException, TableNotFoundException, StorageUnavailableException, NotAllowedException, ViewMalformedException, QueryMalformedException, FormatNotAvailableException {
+            RemoteUnavailableException, UserNotFoundException, QueryNotFoundException, MetadataServiceException,
+            DatabaseUnavailableException, TableNotFoundException, StorageUnavailableException, NotAllowedException,
+            QueryMalformedException, FormatNotAvailableException {
 
         /* mock */
         when(credentialService.getDatabase(DATABASE_1_ID))
@@ -164,8 +167,7 @@ public class SubsetEndpointUnitTest extends AbstractUnitTest {
     public void findById_publicDataPrivateSchema_succeeds() throws DatabaseNotFoundException, SQLException,
             RemoteUnavailableException, UserNotFoundException, DatabaseUnavailableException, NotAllowedException,
             StorageUnavailableException, QueryMalformedException, QueryNotFoundException,
-            FormatNotAvailableException, TableNotFoundException, MetadataServiceException,
-            ViewMalformedException {
+            FormatNotAvailableException, TableNotFoundException, MetadataServiceException {
 
         /* mock */
         when(credentialService.getDatabase(DATABASE_3_ID))
@@ -199,7 +201,7 @@ public class SubsetEndpointUnitTest extends AbstractUnitTest {
     public void findById_privateDataPrivateSchemaAcceptCsv_succeeds() throws DatabaseNotFoundException, RemoteUnavailableException,
             UserNotFoundException, DatabaseUnavailableException, StorageUnavailableException, QueryMalformedException,
             QueryNotFoundException, FormatNotAvailableException, SQLException, MetadataServiceException,
-            TableNotFoundException, ViewMalformedException, NotAllowedException {
+            TableNotFoundException, NotAllowedException {
         final Dataset<Row> mock = sparkSession.emptyDataFrame();
 
         /* mock */
@@ -207,7 +209,7 @@ public class SubsetEndpointUnitTest extends AbstractUnitTest {
                 .thenReturn(DATABASE_1_PRIVILEGED_DTO);
         when(subsetService.findById(DATABASE_1_PRIVILEGED_DTO, QUERY_1_ID))
                 .thenReturn(QUERY_5_DTO);
-        when(subsetService.getData(any(DatabaseDto.class), anyString(), any(Instant.class), eq(null), eq(null), eq(null), eq(null)))
+        when(subsetService.getData(any(DatabaseDto.class), anyString()))
                 .thenReturn(mock);
         when(storageService.transformDataset(any(Dataset.class)))
                 .thenReturn(EXPORT_RESOURCE_DTO);
@@ -243,7 +245,7 @@ public class SubsetEndpointUnitTest extends AbstractUnitTest {
                 .thenReturn(DATABASE_3_PRIVILEGED_DTO);
         when(subsetService.findById(DATABASE_4_PRIVILEGED_DTO, QUERY_5_ID))
                 .thenReturn(QUERY_5_DTO);
-        when(subsetService.getData(any(DatabaseDto.class), anyString(), any(Instant.class), eq(0L), eq(10L), eq(null), eq(null)))
+        when(subsetService.getData(any(DatabaseDto.class), anyString()))
                 .thenReturn(mock);
         when(storageService.transformDataset(any(Dataset.class)))
                 .thenReturn(EXPORT_RESOURCE_DTO);
@@ -303,9 +305,9 @@ public class SubsetEndpointUnitTest extends AbstractUnitTest {
         /* mock */
         when(credentialService.getDatabase(DATABASE_3_ID))
                 .thenReturn(DATABASE_3_PRIVILEGED_DTO);
-        when(subsetService.getData(any(DatabaseDto.class), anyString(), any(Instant.class), eq(0L), eq(10L), eq(null), eq(null)))
+        when(subsetService.getData(any(DatabaseDto.class), anyString()))
                 .thenReturn(mock);
-        when(subsetService.findById(eq(DATABASE_3_PRIVILEGED_DTO), anyLong()))
+        when(subsetService.findById(eq(DATABASE_3_PRIVILEGED_DTO), any(UUID.class)))
                 .thenReturn(QUERY_5_DTO);
         when(databaseService.inspectView(any(DatabaseDto.class), anyString()))
                 .thenReturn(QUERY_5_VIEW_DTO);
@@ -353,7 +355,7 @@ public class SubsetEndpointUnitTest extends AbstractUnitTest {
                 .thenReturn(QUERY_5_ID);
         when(subsetService.findById(any(DatabaseDto.class), eq(QUERY_5_ID)))
                 .thenReturn(QUERY_5_DTO);
-        when(subsetService.getData(any(DatabaseDto.class), anyString(), any(Instant.class), eq(0L), eq(10L), eq(null), eq(null)))
+        when(subsetService.getData(any(DatabaseDto.class), anyString()))
                 .thenReturn(mock);
         when(databaseService.createView(any(DatabaseDto.class), any(CreateViewDto.class)))
                 .thenReturn(QUERY_5_VIEW_DTO);
@@ -402,9 +404,9 @@ public class SubsetEndpointUnitTest extends AbstractUnitTest {
         /* mock */
         when(credentialService.getDatabase(DATABASE_4_ID))
                 .thenReturn(DATABASE_4_PRIVILEGED_DTO);
-        when(subsetService.findById(eq(DATABASE_4_PRIVILEGED_DTO), anyLong()))
+        when(subsetService.findById(eq(DATABASE_4_PRIVILEGED_DTO), any(UUID.class)))
                 .thenReturn(QUERY_5_DTO);
-        when(subsetService.getData(any(DatabaseDto.class), anyString(), any(Instant.class), eq(0L), eq(10L), eq(null), eq(null)))
+        when(subsetService.getData(any(DatabaseDto.class), anyString()))
                 .thenReturn(mock);
         when(databaseService.inspectView(any(DatabaseDto.class), anyString()))
                 .thenReturn(QUERY_5_VIEW_DTO);
@@ -430,9 +432,9 @@ public class SubsetEndpointUnitTest extends AbstractUnitTest {
         /* mock */
         when(credentialService.getDatabase(DATABASE_1_ID))
                 .thenReturn(DATABASE_1_PRIVILEGED_DTO);
-        when(subsetService.findById(eq(DATABASE_1_PRIVILEGED_DTO), anyLong()))
+        when(subsetService.findById(eq(DATABASE_1_PRIVILEGED_DTO), any(UUID.class)))
                 .thenReturn(QUERY_1_DTO);
-        when(subsetService.getData(any(DatabaseDto.class), anyString(), any(Instant.class), eq(0L), eq(10L), eq(null), eq(null)))
+        when(subsetService.getData(any(DatabaseDto.class), anyString()))
                 .thenReturn(mock);
         when(databaseService.inspectView(any(DatabaseDto.class), anyString()))
                 .thenReturn(QUERY_1_VIEW_DTO);
@@ -456,9 +458,9 @@ public class SubsetEndpointUnitTest extends AbstractUnitTest {
         /* mock */
         when(credentialService.getDatabase(DATABASE_2_ID))
                 .thenReturn(DATABASE_2_PRIVILEGED_DTO);
-        when(subsetService.findById(eq(DATABASE_2_PRIVILEGED_DTO), anyLong()))
+        when(subsetService.findById(eq(DATABASE_2_PRIVILEGED_DTO), any(UUID.class)))
                 .thenReturn(QUERY_2_DTO);
-        when(subsetService.getData(any(DatabaseDto.class), anyString(), any(Instant.class), eq(0L), eq(10L), eq(null), eq(null)))
+        when(subsetService.getData(any(DatabaseDto.class), anyString()))
                 .thenReturn(mock);
         when(httpServletRequest.getMethod())
                 .thenReturn("POST");
@@ -483,7 +485,7 @@ public class SubsetEndpointUnitTest extends AbstractUnitTest {
                 .thenReturn(QUERY_5_DTO);
         when(subsetService.reExecuteCount(DATABASE_3_PRIVILEGED_DTO, QUERY_5_DTO))
                 .thenReturn(QUERY_5_RESULT_NUMBER);
-        when(subsetService.getData(any(DatabaseDto.class), anyString(), any(Instant.class), eq(0L), eq(10L), eq(null), eq(null)))
+        when(subsetService.getData(any(DatabaseDto.class), anyString()))
                 .thenReturn(mock);
         when(databaseService.inspectView(any(DatabaseDto.class), anyString()))
                 .thenReturn(QUERY_5_VIEW_DTO);
@@ -535,7 +537,7 @@ public class SubsetEndpointUnitTest extends AbstractUnitTest {
                 .thenReturn(QUERY_1_DTO);
         when(subsetService.reExecuteCount(DATABASE_1_PRIVILEGED_DTO, QUERY_1_DTO))
                 .thenReturn(QUERY_1_RESULT_NUMBER);
-        when(subsetService.getData(any(DatabaseDto.class), anyString(), any(Instant.class), eq(0L), eq(10L), eq(null), eq(null)))
+        when(subsetService.getData(any(DatabaseDto.class), anyString()))
                 .thenReturn(mock);
         when(databaseService.inspectView(any(DatabaseDto.class), anyString()))
                 .thenReturn(QUERY_1_VIEW_DTO);
@@ -705,7 +707,7 @@ public class SubsetEndpointUnitTest extends AbstractUnitTest {
         });
     }
 
-    protected List<QueryDto> generic_list(Long databaseId, DatabaseDto database, Principal principal)
+    protected List<QueryDto> generic_list(UUID databaseId, DatabaseDto database, Principal principal)
             throws NotAllowedException, DatabaseUnavailableException, QueryNotFoundException, DatabaseNotFoundException,
             RemoteUnavailableException, MetadataServiceException {
 
@@ -725,11 +727,11 @@ public class SubsetEndpointUnitTest extends AbstractUnitTest {
         return response.getBody();
     }
 
-    protected void generic_findById(Long databaseId, Long subsetId, String accept, Instant timestamp,
+    protected void generic_findById(UUID databaseId, UUID subsetId, String accept, Instant timestamp,
                                     Principal principal) throws UserNotFoundException, DatabaseUnavailableException,
             StorageUnavailableException, NotAllowedException, QueryMalformedException, QueryNotFoundException,
             DatabaseNotFoundException, RemoteUnavailableException, FormatNotAvailableException,
-            MetadataServiceException, TableNotFoundException, ViewMalformedException {
+            MetadataServiceException, TableNotFoundException {
 
         /* test */
         final ResponseEntity<?> response = subsetEndpoint.findById(databaseId, subsetId, accept, timestamp, principal);
diff --git a/dbrepo-data-service/rest-service/src/test/java/at/tuwien/endpoint/TableEndpointUnitTest.java b/dbrepo-data-service/rest-service/src/test/java/at/tuwien/endpoint/TableEndpointUnitTest.java
index b37007a010..57e6ede962 100644
--- a/dbrepo-data-service/rest-service/src/test/java/at/tuwien/endpoint/TableEndpointUnitTest.java
+++ b/dbrepo-data-service/rest-service/src/test/java/at/tuwien/endpoint/TableEndpointUnitTest.java
@@ -290,7 +290,7 @@ public class TableEndpointUnitTest extends AbstractUnitTest {
                 .thenReturn(TABLE_8_PRIVILEGED_DTO);
         when(credentialService.getDatabase(DATABASE_3_ID))
                 .thenReturn(DATABASE_3_PRIVILEGED_DTO);
-        when(subsetService.getData(any(DatabaseDto.class), anyString(), any(Instant.class), eq(0L), eq(10L), eq(null), eq(null)))
+        when(subsetService.getData(any(DatabaseDto.class), anyString()))
                 .thenReturn(mock);
         when(httpServletRequest.getMethod())
                 .thenReturn("GET");
@@ -313,7 +313,7 @@ public class TableEndpointUnitTest extends AbstractUnitTest {
                 .thenReturn(TABLE_8_PRIVILEGED_DTO);
         when(tableService.getCount(eq(TABLE_8_PRIVILEGED_DTO), any(Instant.class)))
                 .thenReturn(3L);
-        when(subsetService.getData(eq(DATABASE_3_PRIVILEGED_DTO), anyString(), any(Instant.class), eq(0L), eq(10L), eq(null), eq(null)))
+        when(subsetService.getData(eq(DATABASE_3_PRIVILEGED_DTO), anyString()))
                 .thenReturn(mock);
         when(httpServletRequest.getMethod())
                 .thenReturn("HEAD");
@@ -373,7 +373,7 @@ public class TableEndpointUnitTest extends AbstractUnitTest {
                 .thenReturn(DATABASE_3_PRIVILEGED_DTO);
         doThrow(QueryMalformedException.class)
                 .when(subsetService)
-                .getData(any(DatabaseDto.class), anyString(), any(Instant.class), eq(0L), eq(10L), eq(null), eq(null));
+                .getData(any(DatabaseDto.class), anyString());
         when(httpServletRequest.getMethod())
                 .thenReturn("GET");
 
@@ -416,7 +416,7 @@ public class TableEndpointUnitTest extends AbstractUnitTest {
                 .thenReturn(DATABASE_1_PRIVILEGED_DTO);
         when(credentialService.getAccess(DATABASE_1_ID, USER_2_ID))
                 .thenReturn(access);
-        when(subsetService.getData(any(DatabaseDto.class), anyString(), any(Instant.class), eq(0L), eq(10L), eq(null), eq(null)))
+        when(subsetService.getData(any(DatabaseDto.class), anyString()))
                 .thenReturn(mock);
         when(httpServletRequest.getMethod())
                 .thenReturn("GET");
@@ -1159,7 +1159,7 @@ public class TableEndpointUnitTest extends AbstractUnitTest {
                 .thenReturn(TABLE_8_PRIVILEGED_DTO);
         when(credentialService.getDatabase(DATABASE_3_ID))
                 .thenReturn(DATABASE_3_PRIVILEGED_DTO);
-        when(subsetService.getData(any(DatabaseDto.class), anyString(), any(Instant.class), eq(null), eq(null), eq(null), eq(null)))
+        when(subsetService.getData(any(DatabaseDto.class), anyString()))
                 .thenReturn(mock);
 
         /* test */
@@ -1182,7 +1182,7 @@ public class TableEndpointUnitTest extends AbstractUnitTest {
                 .thenReturn(access);
         when(credentialService.getDatabase(DATABASE_1_ID))
                 .thenReturn(DATABASE_1_PRIVILEGED_DTO);
-        when(subsetService.getData(any(DatabaseDto.class), anyString(), any(Instant.class), eq(null), eq(null), eq(null), eq(null)))
+        when(subsetService.getData(any(DatabaseDto.class), anyString()))
                 .thenReturn(mock);
 
         /* test */
diff --git a/dbrepo-data-service/rest-service/src/test/java/at/tuwien/endpoint/ViewEndpointUnitTest.java b/dbrepo-data-service/rest-service/src/test/java/at/tuwien/endpoint/ViewEndpointUnitTest.java
index b003ebfb4f..3421ed6124 100644
--- a/dbrepo-data-service/rest-service/src/test/java/at/tuwien/endpoint/ViewEndpointUnitTest.java
+++ b/dbrepo-data-service/rest-service/src/test/java/at/tuwien/endpoint/ViewEndpointUnitTest.java
@@ -274,8 +274,8 @@ public class ViewEndpointUnitTest extends AbstractUnitTest {
     @Test
     @WithMockUser(username = USER_1_USERNAME, authorities = {"view-database-view-data"})
     public void getData_privateDataPrivateSchema_succeeds() throws RemoteUnavailableException, ViewNotFoundException,
-            SQLException, DatabaseUnavailableException, QueryMalformedException, PaginationException,
-            NotAllowedException, MetadataServiceException, TableNotFoundException, DatabaseNotFoundException {
+            DatabaseUnavailableException, QueryMalformedException, PaginationException, NotAllowedException,
+            MetadataServiceException, TableNotFoundException, DatabaseNotFoundException {
         final Dataset<Row> mock = sparkSession.emptyDataFrame();
 
         /* mock */
@@ -285,7 +285,7 @@ public class ViewEndpointUnitTest extends AbstractUnitTest {
                 .thenReturn(DATABASE_1_PRIVILEGED_DTO);
         when(credentialService.getAccess(DATABASE_1_ID, USER_1_ID))
                 .thenReturn(DATABASE_1_USER_1_READ_ACCESS_DTO);
-        when(subsetService.getData(any(DatabaseDto.class), anyString(), any(Instant.class), eq(0L), eq(10L), eq(null), eq(null)))
+        when(subsetService.getData(any(DatabaseDto.class), anyString()))
                 .thenReturn(mock);
         when(httpServletRequest.getMethod())
                 .thenReturn("GET");
diff --git a/dbrepo-data-service/rest-service/src/test/java/at/tuwien/mvc/PrometheusEndpointMvcTest.java b/dbrepo-data-service/rest-service/src/test/java/at/tuwien/mvc/PrometheusEndpointMvcTest.java
index 120fe49d8f..dacc80acce 100644
--- a/dbrepo-data-service/rest-service/src/test/java/at/tuwien/mvc/PrometheusEndpointMvcTest.java
+++ b/dbrepo-data-service/rest-service/src/test/java/at/tuwien/mvc/PrometheusEndpointMvcTest.java
@@ -7,17 +7,14 @@ import at.tuwien.api.database.table.TupleDeleteDto;
 import at.tuwien.api.database.table.TupleDto;
 import at.tuwien.api.database.table.TupleUpdateDto;
 import at.tuwien.config.MetricsConfig;
-import at.tuwien.endpoints.*;
+import at.tuwien.endpoints.SubsetEndpoint;
+import at.tuwien.endpoints.TableEndpoint;
+import at.tuwien.endpoints.ViewEndpoint;
 import at.tuwien.listener.DefaultListener;
 import at.tuwien.test.AbstractUnitTest;
-import io.micrometer.observation.annotation.Observed;
 import io.micrometer.observation.tck.TestObservationRegistry;
-import io.swagger.v3.oas.annotations.Operation;
 import jakarta.servlet.http.HttpServletRequest;
 import lombok.extern.log4j.Log4j2;
-import org.apache.commons.io.FileUtils;
-import org.junit.jupiter.api.AfterAll;
-import org.junit.jupiter.api.BeforeAll;
 import org.junit.jupiter.api.Test;
 import org.junit.jupiter.api.extension.ExtendWith;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -31,14 +28,11 @@ import org.springframework.security.test.context.support.WithMockUser;
 import org.springframework.test.context.junit.jupiter.SpringExtension;
 import org.springframework.test.web.servlet.MockMvc;
 
-import java.io.File;
-import java.io.IOException;
-import java.lang.reflect.Method;
-import java.util.*;
+import java.util.HashMap;
+import java.util.List;
 
 import static at.tuwien.utils.RabbitMqUtils.buildMessage;
 import static io.micrometer.observation.tck.TestObservationRegistryAssert.assertThat;
-import static org.junit.jupiter.api.Assertions.assertNotNull;
 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.status;
@@ -63,12 +57,6 @@ public class PrometheusEndpointMvcTest extends AbstractUnitTest {
     @Autowired
     private HttpServletRequest httpServletRequest;
 
-    @Autowired
-    private AccessEndpoint accessEndpoint; /* no metrics */
-
-    @Autowired
-    private DatabaseEndpoint databaseEndpoint; /* no metrics */
-
     @Autowired
     private SubsetEndpoint subsetEndpoint;
 
@@ -78,8 +66,6 @@ public class PrometheusEndpointMvcTest extends AbstractUnitTest {
     @Autowired
     private ViewEndpoint viewEndpoint;
 
-    private static final Map<String, String> metrics = new TreeMap<>(); /* sorted */
-
     @TestConfiguration
     static class ObservationTestConfiguration {
 
@@ -89,16 +75,6 @@ public class PrometheusEndpointMvcTest extends AbstractUnitTest {
         }
     }
 
-    @BeforeAll
-    public static void beforeAll() {
-        FileUtils.deleteQuietly(new File("../metrics.txt"));
-    }
-
-    @AfterAll
-    public static void afterAll() throws IOException {
-        saveObservedMetrics(metrics);
-    }
-
     @Test
     public void prometheus_succeeds() throws Exception {
 
@@ -121,7 +97,6 @@ public class PrometheusEndpointMvcTest extends AbstractUnitTest {
         /* test */
         assertThat(registry)
                 .hasObservationWithNameEqualTo("dbrepo_message_receive");
-        generic_openApiDocs(DefaultListener.class);
     }
 
     @Test
@@ -161,7 +136,6 @@ public class PrometheusEndpointMvcTest extends AbstractUnitTest {
             assertThat(registry)
                     .hasObservationWithNameEqualTo(metric);
         }
-        generic_openApiDocs(SubsetEndpoint.class);
     }
 
     @Test
@@ -212,7 +186,6 @@ public class PrometheusEndpointMvcTest extends AbstractUnitTest {
             assertThat(registry)
                     .hasObservationWithNameEqualTo(metric);
         }
-        generic_openApiDocs(TableEndpoint.class);
     }
 
     @Test
@@ -229,21 +202,6 @@ public class PrometheusEndpointMvcTest extends AbstractUnitTest {
         /* test */
         assertThat(registry)
                 .hasObservationWithNameEqualTo("dbrepo_view_data");
-        generic_openApiDocs(ViewEndpoint.class);
-    }
-
-    private static void generic_openApiDocs(Class<?> endpoint) {
-        final List<Method> methods = Arrays.stream(endpoint.getMethods())
-                .filter(m -> m.getDeclaringClass().equals(endpoint))
-                .toList();
-        methods.forEach(m -> {
-            final Observed observed = m.getDeclaredAnnotation(Observed.class);
-            final Operation operation = m.getDeclaredAnnotation(Operation.class);
-            if (observed != null) {
-                assertNotNull(operation);
-                metrics.put(observed.name(), operation.summary());
-            }
-        });
     }
 
 }
diff --git a/dbrepo-data-service/rest-service/src/test/java/at/tuwien/service/ContainerServiceIntegrationTest.java b/dbrepo-data-service/rest-service/src/test/java/at/tuwien/service/ContainerServiceIntegrationTest.java
index e1579fbe95..ef4f8713c8 100644
--- a/dbrepo-data-service/rest-service/src/test/java/at/tuwien/service/ContainerServiceIntegrationTest.java
+++ b/dbrepo-data-service/rest-service/src/test/java/at/tuwien/service/ContainerServiceIntegrationTest.java
@@ -79,7 +79,7 @@ public class ContainerServiceIntegrationTest extends AbstractUnitTest {
     }
 
     @Test
-    public void createQueryStore_succeeds() throws SQLException, QueryStoreCreateException, InterruptedException {
+    public void createQueryStore_succeeds() throws SQLException, QueryStoreCreateException {
 
         /* test */
         createQueryStore_generic(DATABASE_1_INTERNALNAME);
diff --git a/dbrepo-data-service/rest-service/src/test/java/at/tuwien/service/DatabaseServiceIntegrationTest.java b/dbrepo-data-service/rest-service/src/test/java/at/tuwien/service/DatabaseServiceIntegrationTest.java
index 6663a71d13..8fd4a26c5e 100644
--- a/dbrepo-data-service/rest-service/src/test/java/at/tuwien/service/DatabaseServiceIntegrationTest.java
+++ b/dbrepo-data-service/rest-service/src/test/java/at/tuwien/service/DatabaseServiceIntegrationTest.java
@@ -39,6 +39,7 @@ import java.sql.SQLException;
 import java.util.LinkedList;
 import java.util.List;
 import java.util.Set;
+import java.util.UUID;
 
 import static org.junit.jupiter.api.Assertions.*;
 
@@ -709,21 +710,7 @@ public class DatabaseServiceIntegrationTest extends AbstractUnitTest {
         assertEquals(TABLE_1_COLUMNS.size(), response.getColumns().size());
     }
 
-    protected static void assertViewColumn(ViewColumnDto column, ViewColumnDto other) {
-        assertNotNull(column);
-        assertNotNull(other);
-        assertEquals(column.getId(), other.getId());
-        assertEquals(column.getDatabaseId(), other.getDatabaseId());
-        assertEquals(column.getName(), other.getName());
-        assertEquals(column.getInternalName(), other.getInternalName());
-        assertEquals(column.getColumnType(), other.getColumnType());
-        assertEquals(column.getSize(), other.getSize());
-        assertEquals(column.getD(), other.getD());
-        assertEquals(column.getIsNullAllowed(), other.getIsNullAllowed());
-        assertEquals(column.getDescription(), other.getDescription());
-    }
-
-    protected static void assertColumn(ColumnDto column, Long id, Long tableId, Long databaseId, String name,
+    protected static void assertColumn(ColumnDto column, UUID id, UUID tableId, UUID databaseId, String name,
                                        String internalName, ColumnTypeDto type, Long size, Long d, Boolean nullAllowed,
                                        String description) {
         log.trace("assert column: {}", internalName);
diff --git a/dbrepo-data-service/rest-service/src/test/java/at/tuwien/service/SubsetServiceIntegrationTest.java b/dbrepo-data-service/rest-service/src/test/java/at/tuwien/service/SubsetServiceIntegrationTest.java
index 56115690b5..a3f9f4e0d9 100644
--- a/dbrepo-data-service/rest-service/src/test/java/at/tuwien/service/SubsetServiceIntegrationTest.java
+++ b/dbrepo-data-service/rest-service/src/test/java/at/tuwien/service/SubsetServiceIntegrationTest.java
@@ -21,6 +21,7 @@ import org.testcontainers.junit.jupiter.Testcontainers;
 
 import java.sql.SQLException;
 import java.util.List;
+import java.util.UUID;
 
 import static org.junit.jupiter.api.Assertions.*;
 import static org.mockito.Mockito.when;
@@ -55,8 +56,8 @@ public class SubsetServiceIntegrationTest extends AbstractUnitTest {
         /* test */
         final List<QueryDto> response = findAll_generic(null);
         assertEquals(2, response.size());
-        assertEquals(1L, response.get(0).getId());
-        assertEquals(2L, response.get(1).getId());
+        assertEquals(QUERY_1_ID, response.get(0).getId());
+        assertEquals(QUERY_2_ID, response.get(1).getId());
     }
 
     @Test
@@ -66,7 +67,7 @@ public class SubsetServiceIntegrationTest extends AbstractUnitTest {
         /* test */
         final List<QueryDto> response = findAll_generic(true);
         assertEquals(1, response.size());
-        assertEquals(1L, response.get(0).getId());
+        assertEquals(QUERY_1_ID, response.get(0).getId());
     }
 
     @Test
@@ -76,7 +77,7 @@ public class SubsetServiceIntegrationTest extends AbstractUnitTest {
         /* test */
         final List<QueryDto> response = findAll_generic(false);
         assertEquals(1, response.size());
-        assertEquals(2L, response.get(0).getId());
+        assertEquals(QUERY_2_ID, response.get(0).getId());
     }
 
     @Test
@@ -92,7 +93,7 @@ public class SubsetServiceIntegrationTest extends AbstractUnitTest {
 
         /* test */
         assertThrows(QueryNotFoundException.class, () -> {
-            findById_generic(9999L);
+            findById_generic(UUID.randomUUID());
         });
     }
 
@@ -108,7 +109,7 @@ public class SubsetServiceIntegrationTest extends AbstractUnitTest {
         /* test */
         persist_generic(QUERY_2_ID, List.of(IDENTIFIER_5_BRIEF_DTO), true);
         final QueryDto response = queryService.findById(DATABASE_1_PRIVILEGED_DTO, QUERY_2_ID);
-        assertEquals(2L, response.getId());
+        assertEquals(QUERY_2_ID, response.getId());
         assertTrue(response.getIsPersisted());
     }
 
@@ -124,11 +125,11 @@ public class SubsetServiceIntegrationTest extends AbstractUnitTest {
         /* test */
         persist_generic(QUERY_1_ID, List.of(IDENTIFIER_2_BRIEF_DTO), false);
         final QueryDto response = queryService.findById(DATABASE_1_PRIVILEGED_DTO, QUERY_1_ID);
-        assertEquals(1L, response.getId());
+        assertEquals(QUERY_1_ID, response.getId());
         assertFalse(response.getIsPersisted());
     }
 
-    protected void findById_generic(Long queryId) throws RemoteUnavailableException, SQLException,
+    protected void findById_generic(UUID queryId) throws RemoteUnavailableException, SQLException,
             UserNotFoundException, QueryNotFoundException, MetadataServiceException, DatabaseNotFoundException,
             InterruptedException {
 
@@ -164,7 +165,7 @@ public class SubsetServiceIntegrationTest extends AbstractUnitTest {
         return queryService.findAll(DATABASE_1_PRIVILEGED_DTO, filterPersisted);
     }
 
-    protected void persist_generic(Long queryId, List<IdentifierBriefDto> identifiers, Boolean persist)
+    protected void persist_generic(UUID queryId, List<IdentifierBriefDto> identifiers, Boolean persist)
             throws RemoteUnavailableException, SQLException, QueryStorePersistException, MetadataServiceException,
             DatabaseNotFoundException, InterruptedException {
 
diff --git a/dbrepo-data-service/services/src/main/java/at/tuwien/gateway/MetadataServiceGateway.java b/dbrepo-data-service/services/src/main/java/at/tuwien/gateway/MetadataServiceGateway.java
index f7fe2f2075..38b28ebcac 100644
--- a/dbrepo-data-service/services/src/main/java/at/tuwien/gateway/MetadataServiceGateway.java
+++ b/dbrepo-data-service/services/src/main/java/at/tuwien/gateway/MetadataServiceGateway.java
@@ -24,7 +24,7 @@ public interface MetadataServiceGateway {
      * @throws RemoteUnavailableException The remote service is not available.
      * @throws MetadataServiceException   The remote service returned invalid data.
      */
-    ContainerDto getContainerById(Long containerId) throws RemoteUnavailableException,
+    ContainerDto getContainerById(UUID containerId) throws RemoteUnavailableException,
             ContainerNotFoundException, MetadataServiceException;
 
     /**
@@ -36,7 +36,7 @@ public interface MetadataServiceGateway {
      * @throws RemoteUnavailableException The remote service is not available.
      * @throws MetadataServiceException   The remote service returned invalid data.
      */
-    DatabaseDto getDatabaseById(Long id) throws DatabaseNotFoundException, RemoteUnavailableException,
+    DatabaseDto getDatabaseById(UUID id) throws DatabaseNotFoundException, RemoteUnavailableException,
             MetadataServiceException;
 
     /**
@@ -49,7 +49,7 @@ public interface MetadataServiceGateway {
      * @throws RemoteUnavailableException The remote service is not available.
      * @throws MetadataServiceException   The remote service returned invalid data.
      */
-    TableDto getTableById(Long databaseId, Long id) throws TableNotFoundException, RemoteUnavailableException,
+    TableDto getTableById(UUID databaseId, UUID id) throws TableNotFoundException, RemoteUnavailableException,
             MetadataServiceException;
 
     /**
@@ -62,7 +62,7 @@ public interface MetadataServiceGateway {
      * @throws RemoteUnavailableException The remote service is not available.
      * @throws MetadataServiceException   The remote service returned invalid data.
      */
-    ViewDto getViewById(Long databaseId, Long id) throws RemoteUnavailableException, ViewNotFoundException,
+    ViewDto getViewById(UUID databaseId, UUID id) throws RemoteUnavailableException, ViewNotFoundException,
             MetadataServiceException;
 
     /**
@@ -86,7 +86,7 @@ public interface MetadataServiceGateway {
      * @throws NotAllowedException        The access to this database is denied for the given user.
      * @throws MetadataServiceException   The remote service returned invalid data.
      */
-    DatabaseAccessDto getAccess(Long databaseId, UUID userId) throws RemoteUnavailableException, NotAllowedException,
+    DatabaseAccessDto getAccess(UUID databaseId, UUID userId) throws RemoteUnavailableException, NotAllowedException,
             MetadataServiceException;
 
     /**
@@ -99,7 +99,7 @@ public interface MetadataServiceGateway {
      * @throws DatabaseNotFoundException  The database was not found.
      * @throws MetadataServiceException   The remote service returned invalid data.
      */
-    List<IdentifierBriefDto> getIdentifiers(@NotNull Long databaseId, Long subsetId) throws MetadataServiceException,
+    List<IdentifierBriefDto> getIdentifiers(@NotNull UUID databaseId, UUID subsetId) throws MetadataServiceException,
             RemoteUnavailableException, DatabaseNotFoundException;
 
     /**
@@ -112,6 +112,6 @@ public interface MetadataServiceGateway {
      * @throws TableNotFoundException     The table was not found.
      * @throws MetadataServiceException   The remote service returned invalid data.
      */
-    void updateTableStatistics(Long databaseId, Long tableId, String authorization) throws TableNotFoundException,
+    void updateTableStatistics(UUID databaseId, UUID tableId, String authorization) throws TableNotFoundException,
             MetadataServiceException, RemoteUnavailableException;
 }
diff --git a/dbrepo-data-service/services/src/main/java/at/tuwien/gateway/impl/MetadataServiceGatewayImpl.java b/dbrepo-data-service/services/src/main/java/at/tuwien/gateway/impl/MetadataServiceGatewayImpl.java
index 7b02192b7e..832bf09061 100644
--- a/dbrepo-data-service/services/src/main/java/at/tuwien/gateway/impl/MetadataServiceGatewayImpl.java
+++ b/dbrepo-data-service/services/src/main/java/at/tuwien/gateway/impl/MetadataServiceGatewayImpl.java
@@ -44,7 +44,7 @@ public class MetadataServiceGatewayImpl implements MetadataServiceGateway {
     }
 
     @Override
-    public ContainerDto getContainerById(Long containerId) throws RemoteUnavailableException,
+    public ContainerDto getContainerById(UUID containerId) throws RemoteUnavailableException,
             ContainerNotFoundException, MetadataServiceException {
         final ResponseEntity<ContainerDto> response;
         final String url = "/api/container/" + containerId;
@@ -77,12 +77,13 @@ public class MetadataServiceGatewayImpl implements MetadataServiceGateway {
         final ContainerDto container = metadataMapper.containerDtoToContainerDto(response.getBody());
         container.setUsername(response.getHeaders().get("X-Username").get(0));
         container.setPassword(response.getHeaders().get("X-Password").get(0));
+        container.getImage().setJdbcMethod(response.getHeaders().get("X-Jdbc-Method").get(0));
         container.setLastRetrieved(Instant.now());
         return container;
     }
 
     @Override
-    public DatabaseDto getDatabaseById(Long id) throws DatabaseNotFoundException, RemoteUnavailableException,
+    public DatabaseDto getDatabaseById(UUID id) throws DatabaseNotFoundException, RemoteUnavailableException,
             MetadataServiceException {
         final ResponseEntity<DatabaseDto> response;
         final String url = "/api/database/" + id;
@@ -119,7 +120,7 @@ public class MetadataServiceGatewayImpl implements MetadataServiceGateway {
     }
 
     @Override
-    public TableDto getTableById(Long databaseId, Long id) throws TableNotFoundException,
+    public TableDto getTableById(UUID databaseId, UUID id) throws TableNotFoundException,
             RemoteUnavailableException, MetadataServiceException {
         final ResponseEntity<TableDto> response;
         final String url = "/api/database/" + databaseId + "/table/" + id;
@@ -156,7 +157,7 @@ public class MetadataServiceGatewayImpl implements MetadataServiceGateway {
     }
 
     @Override
-    public ViewDto getViewById(Long databaseId, Long id) throws RemoteUnavailableException,
+    public ViewDto getViewById(UUID databaseId, UUID id) throws RemoteUnavailableException,
             ViewNotFoundException, MetadataServiceException {
         final ResponseEntity<ViewDto> response;
         final String url = "/api/database/" + databaseId + "/view/" + id;
@@ -230,7 +231,7 @@ public class MetadataServiceGatewayImpl implements MetadataServiceGateway {
     }
 
     @Override
-    public DatabaseAccessDto getAccess(Long databaseId, UUID userId) throws RemoteUnavailableException,
+    public DatabaseAccessDto getAccess(UUID databaseId, UUID userId) throws RemoteUnavailableException,
             NotAllowedException, MetadataServiceException {
         final ResponseEntity<DatabaseAccessDto> response;
         final String url = "/api/database/" + databaseId + "/access/" + userId;
@@ -256,7 +257,7 @@ public class MetadataServiceGatewayImpl implements MetadataServiceGateway {
     }
 
     @Override
-    public List<IdentifierBriefDto> getIdentifiers(@NotNull Long databaseId, Long subsetId) throws MetadataServiceException,
+    public List<IdentifierBriefDto> getIdentifiers(@NotNull UUID databaseId, UUID subsetId) throws MetadataServiceException,
             RemoteUnavailableException, DatabaseNotFoundException {
         final ResponseEntity<IdentifierBriefDto[]> response;
         final String url = "/api/identifier?dbid=" + databaseId + (subsetId != null ? ("&qid=" + subsetId) : "");
@@ -282,7 +283,7 @@ public class MetadataServiceGatewayImpl implements MetadataServiceGateway {
     }
 
     @Override
-    public void updateTableStatistics(Long databaseId, Long tableId, String authorization) throws TableNotFoundException,
+    public void updateTableStatistics(UUID databaseId, UUID tableId, String authorization) throws TableNotFoundException,
             MetadataServiceException, RemoteUnavailableException {
         final ResponseEntity<Void> response;
         final String url = "/api/database/" + databaseId + "/table/" + tableId + "/statistic";
diff --git a/dbrepo-data-service/services/src/main/java/at/tuwien/listener/DefaultListener.java b/dbrepo-data-service/services/src/main/java/at/tuwien/listener/DefaultListener.java
index d2a66ab548..336a483117 100644
--- a/dbrepo-data-service/services/src/main/java/at/tuwien/listener/DefaultListener.java
+++ b/dbrepo-data-service/services/src/main/java/at/tuwien/listener/DefaultListener.java
@@ -21,6 +21,7 @@ import java.io.IOException;
 import java.sql.SQLException;
 import java.util.HashMap;
 import java.util.Map;
+import java.util.UUID;
 
 @Log4j2
 @Component
@@ -53,8 +54,8 @@ public class DefaultListener implements MessageListener {
             log.error("Failed to map database and table names from routing key: is not 3-part");
             return;
         }
-        final Long databaseId = Long.parseLong(parts[1]);
-        final Long tableId = Long.parseLong(parts[2]);
+        final UUID databaseId = UUID.fromString(parts[1]);
+        final UUID tableId = UUID.fromString(parts[2]);
         log.trace("received message for table with id {} of database id {}: {} bytes", tableId, databaseId, message.getMessageProperties().getContentLength());
         final Map<String, Object> body;
         try {
diff --git a/dbrepo-data-service/services/src/main/java/at/tuwien/mapper/DataMapper.java b/dbrepo-data-service/services/src/main/java/at/tuwien/mapper/DataMapper.java
index 3fedaedc66..5e2f8c88f7 100644
--- a/dbrepo-data-service/services/src/main/java/at/tuwien/mapper/DataMapper.java
+++ b/dbrepo-data-service/services/src/main/java/at/tuwien/mapper/DataMapper.java
@@ -198,7 +198,7 @@ public interface DataMapper {
     default QueryDto resultSetToQueryDto(@NotNull ResultSet data) throws SQLException {
         /* note that next() is called outside this mapping function */
         final QueryDto subset = QueryDto.builder()
-                .id(data.getLong(1))
+                .id(UUID.fromString(data.getString(1)))
                 .query(data.getString(4))
                 .queryHash(data.getString(5))
                 .resultHash(data.getString(6))
diff --git a/dbrepo-data-service/services/src/main/java/at/tuwien/mapper/MariaDbMapper.java b/dbrepo-data-service/services/src/main/java/at/tuwien/mapper/MariaDbMapper.java
index 8be9ef68e3..95427d384c 100644
--- a/dbrepo-data-service/services/src/main/java/at/tuwien/mapper/MariaDbMapper.java
+++ b/dbrepo-data-service/services/src/main/java/at/tuwien/mapper/MariaDbMapper.java
@@ -112,14 +112,8 @@ public interface MariaDbMapper {
         return statement.toString();
     }
 
-    default String queryStoreCreateSequenceRawQuery() {
-        final String statement = "CREATE SEQUENCE `qs_queries_seq` NOCACHE;";
-        log.trace("mapped create query store sequence statement: {}", statement);
-        return statement;
-    }
-
     default String queryStoreCreateTableRawQuery() {
-        final String statement = "CREATE TABLE `qs_queries` ( `id` bigint not null primary key default nextval(`qs_queries_seq`), `created` datetime not null default now(), `executed` datetime not null default now(), `created_by` varchar(36), `query` text not null, `query_normalized` text not null, `is_persisted` boolean not null, `query_hash` varchar(255) not null, `result_hash` varchar(255), `result_number` bigint) WITH SYSTEM VERSIONING;";
+        final String statement = "CREATE TABLE `qs_queries` ( `id` varchar(36) not null primary key, `created` datetime not null default now(), `executed` datetime not null default now(), `created_by` varchar(36), `query` text not null, `query_normalized` text not null, `is_persisted` boolean not null, `query_hash` varchar(255) not null, `result_hash` varchar(255), `result_number` bigint) WITH SYSTEM VERSIONING;";
         log.trace("mapped create query store table statement: {}", statement);
         return statement;
     }
diff --git a/dbrepo-data-service/services/src/main/java/at/tuwien/mapper/MetadataMapper.java b/dbrepo-data-service/services/src/main/java/at/tuwien/mapper/MetadataMapper.java
index 116737e2ed..803116e602 100644
--- a/dbrepo-data-service/services/src/main/java/at/tuwien/mapper/MetadataMapper.java
+++ b/dbrepo-data-service/services/src/main/java/at/tuwien/mapper/MetadataMapper.java
@@ -18,6 +18,8 @@ import org.mapstruct.Mapper;
 import org.mapstruct.Mapping;
 import org.mapstruct.Mappings;
 
+import java.util.UUID;
+
 @Mapper(componentModel = "spring", imports = {DatabaseDto.class, ContainerDto.class, ImageDto.class})
 public interface MetadataMapper {
 
@@ -52,7 +54,7 @@ public interface MetadataMapper {
 
     IdentifierBriefDto identifierDtoToIdentifierBriefDto(IdentifierDto data);
 
-    default String metricToUri(String baseUrl, Long databaseId, Long tableId, Long subsetId, Long viewId) {
+    default String metricToUri(String baseUrl, UUID databaseId, UUID tableId, UUID subsetId, UUID viewId) {
         final StringBuilder uri = new StringBuilder(baseUrl)
                 .append("/database/")
                 .append(databaseId);
diff --git a/dbrepo-data-service/services/src/main/java/at/tuwien/service/CredentialService.java b/dbrepo-data-service/services/src/main/java/at/tuwien/service/CredentialService.java
index fe3df343db..543e84ab51 100644
--- a/dbrepo-data-service/services/src/main/java/at/tuwien/service/CredentialService.java
+++ b/dbrepo-data-service/services/src/main/java/at/tuwien/service/CredentialService.java
@@ -22,7 +22,7 @@ public interface CredentialService {
      * @throws RemoteUnavailableException The remote service is not available.
      * @throws MetadataServiceException   The remote service returned invalid data.
      */
-    DatabaseDto getDatabase(Long id) throws DatabaseNotFoundException, RemoteUnavailableException,
+    DatabaseDto getDatabase(UUID id) throws DatabaseNotFoundException, RemoteUnavailableException,
             MetadataServiceException;
 
     /**
@@ -35,7 +35,7 @@ public interface CredentialService {
      * @throws RemoteUnavailableException The remote service is not available.
      * @throws MetadataServiceException   The remote service returned invalid data.
      */
-    ContainerDto getContainer(Long id) throws ContainerNotFoundException, RemoteUnavailableException,
+    ContainerDto getContainer(UUID id) throws ContainerNotFoundException, RemoteUnavailableException,
             MetadataServiceException;
 
     /**
@@ -49,7 +49,7 @@ public interface CredentialService {
      * @throws RemoteUnavailableException The remote service is not available.
      * @throws MetadataServiceException   The remote service returned invalid data.
      */
-    TableDto getTable(Long databaseId, Long tableId) throws RemoteUnavailableException,
+    TableDto getTable(UUID databaseId, UUID tableId) throws RemoteUnavailableException,
             MetadataServiceException, TableNotFoundException;
 
     /**
@@ -63,7 +63,7 @@ public interface CredentialService {
      * @throws RemoteUnavailableException The remote service is not available.
      * @throws MetadataServiceException   The remote service returned invalid data.
      */
-    ViewDto getView(Long databaseId, Long viewId) throws RemoteUnavailableException,
+    ViewDto getView(UUID databaseId, UUID viewId) throws RemoteUnavailableException,
             MetadataServiceException, ViewNotFoundException;
 
     /**
@@ -90,7 +90,7 @@ public interface CredentialService {
      * @throws RemoteUnavailableException The remote service is not available.
      * @throws MetadataServiceException   The remote service returned invalid data.
      */
-    DatabaseAccessDto getAccess(Long databaseId, UUID userId) throws RemoteUnavailableException,
+    DatabaseAccessDto getAccess(UUID databaseId, UUID userId) throws RemoteUnavailableException,
             MetadataServiceException, NotAllowedException;
 
     /**
@@ -98,5 +98,5 @@ public interface CredentialService {
      *
      * @param databaseId The database id.
      */
-    void invalidateAccess(Long databaseId);
+    void invalidateAccess(UUID databaseId);
 }
diff --git a/dbrepo-data-service/services/src/main/java/at/tuwien/service/MetricsService.java b/dbrepo-data-service/services/src/main/java/at/tuwien/service/MetricsService.java
index 131bae7287..2beed4b773 100644
--- a/dbrepo-data-service/services/src/main/java/at/tuwien/service/MetricsService.java
+++ b/dbrepo-data-service/services/src/main/java/at/tuwien/service/MetricsService.java
@@ -1,10 +1,12 @@
 package at.tuwien.service;
 
+import java.util.UUID;
+
 public interface MetricsService {
 
-    void countTableGetData(Long databaseId, Long tableId);
+    void countTableGetData(UUID databaseId, UUID tableId);
 
-    void countSubsetGetData(Long databaseId, Long subsetId);
+    void countSubsetGetData(UUID databaseId, UUID subsetId);
 
-    void countViewGetData(Long databaseId, Long viewId);
+    void countViewGetData(UUID databaseId, UUID viewId);
 }
diff --git a/dbrepo-data-service/services/src/main/java/at/tuwien/service/SubsetService.java b/dbrepo-data-service/services/src/main/java/at/tuwien/service/SubsetService.java
index e2fc560027..49bd560c7a 100644
--- a/dbrepo-data-service/services/src/main/java/at/tuwien/service/SubsetService.java
+++ b/dbrepo-data-service/services/src/main/java/at/tuwien/service/SubsetService.java
@@ -1,6 +1,5 @@
 package at.tuwien.service;
 
-import at.tuwien.api.SortTypeDto;
 import at.tuwien.api.database.DatabaseDto;
 import at.tuwien.api.database.query.QueryDto;
 import at.tuwien.exception.*;
@@ -25,7 +24,7 @@ public interface SubsetService {
      * @throws QueryStoreInsertException The query store refused to insert the query.
      * @throws SQLException              The connection to the database could not be established.
      */
-    Long create(DatabaseDto database, String statement, Instant timestamp, UUID userId)
+    UUID create(DatabaseDto database, String statement, Instant timestamp, UUID userId)
             throws QueryStoreInsertException, SQLException;
 
     /**
@@ -45,15 +44,11 @@ public interface SubsetService {
      *
      * @param database The database.
      * @param query   The query statements.
-     * @param page     The page number.
-     * @param size     Te result size.
      * @return The data.
      * @throws QueryMalformedException The mapped query produced a database error.
      * @throws TableNotFoundException  The database table is malformed.
      */
-    Dataset<Row> getData(DatabaseDto database, String query, Instant timestamp, Long page, Long size,
-                         SortTypeDto sortDirection, String sortColumn) throws QueryMalformedException,
-            TableNotFoundException;
+    Dataset<Row> getData(DatabaseDto database, String query) throws QueryMalformedException, TableNotFoundException;
 
     /**
      * Finds all queries in the query store of the given database id and query id.
@@ -97,7 +92,7 @@ public interface SubsetService {
      * @throws DatabaseNotFoundException  The database metadata was not found in the Metadata Service.
      * @throws MetadataServiceException   Communication with the Metadata Service failed.
      */
-    QueryDto findById(DatabaseDto database, Long queryId) throws QueryNotFoundException, SQLException,
+    QueryDto findById(DatabaseDto database, UUID queryId) throws QueryNotFoundException, SQLException,
             RemoteUnavailableException, UserNotFoundException, DatabaseNotFoundException, MetadataServiceException;
 
     /**
@@ -110,7 +105,7 @@ public interface SubsetService {
      * @throws SQLException              The connection to the database could not be established.
      * @throws QueryStoreInsertException The query store failed to insert the query.
      */
-    Long storeQuery(DatabaseDto database, String query, Instant timestamp, UUID userId) throws SQLException,
+    UUID storeQuery(DatabaseDto database, String query, Instant timestamp, UUID userId) throws SQLException,
             QueryStoreInsertException;
 
     /**
@@ -122,7 +117,7 @@ public interface SubsetService {
      * @throws SQLException               The connection to the database could not be established.
      * @throws QueryStorePersistException The query store failed to persist/unpersist the query.
      */
-    void persist(DatabaseDto database, Long queryId, Boolean persist) throws SQLException,
+    void persist(DatabaseDto database, UUID queryId, Boolean persist) throws SQLException,
             QueryStorePersistException;
 
     /**
diff --git a/dbrepo-data-service/services/src/main/java/at/tuwien/service/impl/ContainerServiceMariaDbImpl.java b/dbrepo-data-service/services/src/main/java/at/tuwien/service/impl/ContainerServiceMariaDbImpl.java
index aedba1aed2..9e35574d8d 100644
--- a/dbrepo-data-service/services/src/main/java/at/tuwien/service/impl/ContainerServiceMariaDbImpl.java
+++ b/dbrepo-data-service/services/src/main/java/at/tuwien/service/impl/ContainerServiceMariaDbImpl.java
@@ -71,10 +71,6 @@ public class ContainerServiceMariaDbImpl extends DataConnector implements Contai
         try {
             /* create query store */
             long start = System.currentTimeMillis();
-            connection.prepareStatement(mariaDbMapper.queryStoreCreateSequenceRawQuery())
-                    .execute();
-            log.trace("executed statement in {} ms", System.currentTimeMillis() - start);
-            start = System.currentTimeMillis();
             connection.prepareStatement(mariaDbMapper.queryStoreCreateTableRawQuery())
                     .execute();
             log.trace("executed statement in {} ms", System.currentTimeMillis() - start);
diff --git a/dbrepo-data-service/services/src/main/java/at/tuwien/service/impl/CredentialServiceImpl.java b/dbrepo-data-service/services/src/main/java/at/tuwien/service/impl/CredentialServiceImpl.java
index fbc800bf47..d5431e6ee6 100644
--- a/dbrepo-data-service/services/src/main/java/at/tuwien/service/impl/CredentialServiceImpl.java
+++ b/dbrepo-data-service/services/src/main/java/at/tuwien/service/impl/CredentialServiceImpl.java
@@ -22,18 +22,18 @@ public class CredentialServiceImpl implements CredentialService {
 
     private final MetadataServiceGateway gateway;
     private final Cache<UUID, UserDto> userCache;
-    private final Cache<Long, ViewDto> viewCache;
-    private final Cache<Long, DatabaseAccessDto> accessCache;
-    private final Cache<Long, TableDto> tableCache;
-    private final Cache<Long, DatabaseDto> databaseCache;
-    private final Cache<Long, ContainerDto> containerCache;
+    private final Cache<UUID, ViewDto> viewCache;
+    private final Cache<UUID, DatabaseAccessDto> accessCache;
+    private final Cache<UUID, TableDto> tableCache;
+    private final Cache<UUID, DatabaseDto> databaseCache;
+    private final Cache<UUID, ContainerDto> containerCache;
 
     @Autowired
     public CredentialServiceImpl(MetadataServiceGateway gateway, Cache<UUID, UserDto> userCache,
-                                 Cache<Long, ViewDto> viewCache, Cache<Long, DatabaseAccessDto> accessCache,
-                                 Cache<Long, TableDto> tableCache,
-                                 Cache<Long, DatabaseDto> databaseCache,
-                                 Cache<Long, ContainerDto> containerCache) {
+                                 Cache<UUID, ViewDto> viewCache, Cache<UUID, DatabaseAccessDto> accessCache,
+                                 Cache<UUID, TableDto> tableCache,
+                                 Cache<UUID, DatabaseDto> databaseCache,
+                                 Cache<UUID, ContainerDto> containerCache) {
         this.gateway = gateway;
         this.userCache = userCache;
         this.viewCache = viewCache;
@@ -44,7 +44,7 @@ public class CredentialServiceImpl implements CredentialService {
     }
 
     @Override
-    public DatabaseDto getDatabase(Long id) throws DatabaseNotFoundException, RemoteUnavailableException,
+    public DatabaseDto getDatabase(UUID id) throws DatabaseNotFoundException, RemoteUnavailableException,
             MetadataServiceException {
         final DatabaseDto cacheDatabase = databaseCache.getIfPresent(id);
         if (cacheDatabase != null) {
@@ -58,7 +58,7 @@ public class CredentialServiceImpl implements CredentialService {
     }
 
     @Override
-    public TableDto getTable(Long databaseId, Long tableId) throws RemoteUnavailableException,
+    public TableDto getTable(UUID databaseId, UUID tableId) throws RemoteUnavailableException,
             MetadataServiceException, TableNotFoundException {
         final TableDto cacheTable = tableCache.getIfPresent(tableId);
         if (cacheTable != null) {
@@ -72,13 +72,13 @@ public class CredentialServiceImpl implements CredentialService {
     }
 
     @Override
-    public void invalidateAccess(Long databaseId) {
+    public void invalidateAccess(UUID databaseId) {
         accessCache.invalidate(databaseId);
         log.debug("invalidated access for database with id {} in cache", databaseId);
     }
 
     @Override
-    public ContainerDto getContainer(Long id) throws RemoteUnavailableException, MetadataServiceException,
+    public ContainerDto getContainer(UUID id) throws RemoteUnavailableException, MetadataServiceException,
             ContainerNotFoundException {
         final ContainerDto cacheContainer = containerCache.getIfPresent(id);
         if (cacheContainer != null) {
@@ -92,7 +92,7 @@ public class CredentialServiceImpl implements CredentialService {
     }
 
     @Override
-    public ViewDto getView(Long databaseId, Long viewId) throws RemoteUnavailableException,
+    public ViewDto getView(UUID databaseId, UUID viewId) throws RemoteUnavailableException,
             MetadataServiceException, ViewNotFoundException {
         final ViewDto cacheView = viewCache.getIfPresent(viewId);
         if (cacheView != null) {
@@ -120,7 +120,7 @@ public class CredentialServiceImpl implements CredentialService {
     }
 
     @Override
-    public DatabaseAccessDto getAccess(Long databaseId, UUID userId) throws RemoteUnavailableException,
+    public DatabaseAccessDto getAccess(UUID databaseId, UUID userId) throws RemoteUnavailableException,
             MetadataServiceException, NotAllowedException {
         final DatabaseAccessDto cacheAccess = accessCache.getIfPresent(databaseId);
         if (cacheAccess != null) {
diff --git a/dbrepo-data-service/services/src/main/java/at/tuwien/service/impl/MetricsServicePrometheusImpl.java b/dbrepo-data-service/services/src/main/java/at/tuwien/service/impl/MetricsServicePrometheusImpl.java
index 73754c9f5f..0b49804c31 100644
--- a/dbrepo-data-service/services/src/main/java/at/tuwien/service/impl/MetricsServicePrometheusImpl.java
+++ b/dbrepo-data-service/services/src/main/java/at/tuwien/service/impl/MetricsServicePrometheusImpl.java
@@ -8,6 +8,8 @@ import io.micrometer.core.instrument.Metrics;
 import lombok.extern.log4j.Log4j2;
 import org.springframework.stereotype.Service;
 
+import java.util.UUID;
+
 @Log4j2
 @Service
 public class MetricsServicePrometheusImpl implements MetricsService {
@@ -21,21 +23,21 @@ public class MetricsServicePrometheusImpl implements MetricsService {
     }
 
     @Override
-    public void countTableGetData(Long databaseId, Long tableId) {
+    public void countTableGetData(UUID databaseId, UUID tableId) {
         countGetData(databaseId, tableId, null, null);
     }
 
     @Override
-    public void countSubsetGetData(Long databaseId, Long subsetId) {
+    public void countSubsetGetData(UUID databaseId, UUID subsetId) {
         countGetData(databaseId, null, subsetId, null);
     }
 
     @Override
-    public void countViewGetData(Long databaseId, Long viewId) {
+    public void countViewGetData(UUID databaseId, UUID viewId) {
         countGetData(databaseId, null, null, viewId);
     }
 
-    public void countGetData(Long databaseId, Long tableId, Long subsetId, Long viewId) {
+    public void countGetData(UUID databaseId, UUID tableId, UUID subsetId, UUID viewId) {
         Counter.builder("dbrepo.datasource.data.get")
                 .tag("uri", metadataMapper.metricToUri(metricsConfig.getBaseUrl(), databaseId, tableId, subsetId, viewId))
                 .tag("protocol", "http")
diff --git a/dbrepo-data-service/services/src/main/java/at/tuwien/service/impl/SubsetServiceMariaDbImpl.java b/dbrepo-data-service/services/src/main/java/at/tuwien/service/impl/SubsetServiceMariaDbImpl.java
index bdfdb14838..3373f97b76 100644
--- a/dbrepo-data-service/services/src/main/java/at/tuwien/service/impl/SubsetServiceMariaDbImpl.java
+++ b/dbrepo-data-service/services/src/main/java/at/tuwien/service/impl/SubsetServiceMariaDbImpl.java
@@ -1,6 +1,5 @@
 package at.tuwien.service.impl;
 
-import at.tuwien.api.SortTypeDto;
 import at.tuwien.api.database.DatabaseDto;
 import at.tuwien.api.database.query.QueryDto;
 import at.tuwien.api.identifier.IdentifierBriefDto;
@@ -44,9 +43,7 @@ public class SubsetServiceMariaDbImpl extends DataConnector implements SubsetSer
     }
 
     @Override
-    public Dataset<Row> getData(DatabaseDto database, String query, Instant timestamp, Long page, Long size,
-                                SortTypeDto sortDirection, String sortColumn)
-            throws QueryMalformedException, TableNotFoundException {
+    public Dataset<Row> getData(DatabaseDto database, String query) throws QueryMalformedException, TableNotFoundException {
         try {
             return sparkSession.read()
                     .format("jdbc")
@@ -68,7 +65,7 @@ public class SubsetServiceMariaDbImpl extends DataConnector implements SubsetSer
     }
 
     @Override
-    public Long create(DatabaseDto database, String statement, Instant timestamp, UUID userId)
+    public UUID create(DatabaseDto database, String statement, Instant timestamp, UUID userId)
             throws QueryStoreInsertException, SQLException {
         return storeQuery(database, statement, timestamp, userId);
     }
@@ -133,14 +130,14 @@ public class SubsetServiceMariaDbImpl extends DataConnector implements SubsetSer
     }
 
     @Override
-    public QueryDto findById(DatabaseDto database, Long queryId) throws QueryNotFoundException, SQLException,
+    public QueryDto findById(DatabaseDto database, UUID queryId) throws QueryNotFoundException, SQLException,
             RemoteUnavailableException, DatabaseNotFoundException, MetadataServiceException {
         final ComboPooledDataSource dataSource = getDataSource(database);
         final Connection connection = dataSource.getConnection();
         try {
             final long start = System.currentTimeMillis();
             final PreparedStatement preparedStatement = connection.prepareStatement(mariaDbMapper.queryStoreFindQueryRawQuery());
-            preparedStatement.setLong(1, queryId);
+            preparedStatement.setString(1, String.valueOf(queryId));
             final ResultSet resultSet = preparedStatement.executeQuery();
             log.trace("executed statement in {} ms", System.currentTimeMillis() - start);
             if (!resultSet.next()) {
@@ -160,10 +157,10 @@ public class SubsetServiceMariaDbImpl extends DataConnector implements SubsetSer
     }
 
     @Override
-    public Long storeQuery(DatabaseDto database, String query, Instant timestamp, UUID userId) throws SQLException,
+    public UUID storeQuery(DatabaseDto database, String query, Instant timestamp, UUID userId) throws SQLException,
             QueryStoreInsertException {
         /* save */
-        final Long queryId;
+        final UUID queryId;
         final ComboPooledDataSource dataSource = getDataSource(database);
         final Connection connection = dataSource.getConnection();
         try {
@@ -180,7 +177,7 @@ public class SubsetServiceMariaDbImpl extends DataConnector implements SubsetSer
             callableStatement.registerOutParameter(4, Types.BIGINT);
             callableStatement.executeUpdate();
             log.trace("executed statement in {} ms", System.currentTimeMillis() - start);
-            queryId = callableStatement.getLong(4);
+            queryId = UUID.fromString(callableStatement.getString(4));
             callableStatement.close();
             log.info("Stored query with id {} in database with name {}", queryId, database.getInternalName());
             connection.commit();
@@ -195,7 +192,7 @@ public class SubsetServiceMariaDbImpl extends DataConnector implements SubsetSer
     }
 
     @Override
-    public void persist(DatabaseDto database, Long queryId, Boolean persist) throws SQLException,
+    public void persist(DatabaseDto database, UUID queryId, Boolean persist) throws SQLException,
             QueryStorePersistException {
         final ComboPooledDataSource dataSource = getDataSource(database);
         final Connection connection = dataSource.getConnection();
@@ -204,7 +201,7 @@ public class SubsetServiceMariaDbImpl extends DataConnector implements SubsetSer
             final long start = System.currentTimeMillis();
             final PreparedStatement preparedStatement = connection.prepareStatement(mariaDbMapper.queryStoreUpdateQueryRawQuery());
             preparedStatement.setBoolean(1, persist);
-            preparedStatement.setLong(2, queryId);
+            preparedStatement.setString(2, String.valueOf(queryId));
             preparedStatement.executeUpdate();
             log.trace("executed statement in {} ms", System.currentTimeMillis() - start);
         } catch (SQLException e) {
diff --git a/dbrepo-metadata-db/1_setup-schema.sql b/dbrepo-metadata-db/1_setup-schema.sql
index e2bde25ed6..4a580853c4 100644
--- a/dbrepo-metadata-db/1_setup-schema.sql
+++ b/dbrepo-metadata-db/1_setup-schema.sql
@@ -2,550 +2,550 @@ BEGIN;
 
 CREATE TABLE IF NOT EXISTS `mdb_users`
 (
-    id               character varying(36)  NOT NULL,
-    keycloak_id      character varying(36)  NOT NULL,
-    username         character varying(255) NOT NULL,
-    firstname        character varying(255),
-    lastname         character varying(255),
-    orcid            character varying(255),
-    affiliation      character varying(255),
-    is_internal      BOOLEAN                NOT NULL DEFAULT FALSE,
-    mariadb_password character varying(255) NOT NULL,
-    theme            character varying(255) NOT NULL default ('light'),
-    language         character varying(3)   NOT NULL default ('en'),
-    PRIMARY KEY (id),
-    UNIQUE (keycloak_id),
-    UNIQUE (username)
+    id               varchar(36)  not null,
+    keycloak_id      varchar(36)  not null,
+    username         varchar(255) not null,
+    firstname        varchar(255),
+    lastname         varchar(255),
+    orcid            varchar(255),
+    affiliation      varchar(255),
+    is_internal      boolean      not null default false,
+    mariadb_password varchar(255) not null,
+    theme            varchar(255) not null default ('light'),
+    language         varchar(3)   not null default ('en'),
+    primary key (id),
+    unique (keycloak_id),
+    unique (username)
 ) WITH SYSTEM VERSIONING;
 
 CREATE TABLE IF NOT EXISTS `mdb_images`
 (
-    id            SERIAL,
-    registry      character varying(255) NOT NULL DEFAULT 'docker.io',
-    name          character varying(255) NOT NULL,
-    version       character varying(255) NOT NULL,
-    default_port  integer                NOT NULL,
-    dialect       character varying(255) NOT NULL,
-    driver_class  character varying(255) NOT NULL,
-    jdbc_method   character varying(255) NOT NULL,
-    is_default    BOOLEAN                NOT NULL DEFAULT FALSE,
-    created       timestamp              NOT NULL DEFAULT NOW(),
+    id            varchar(36)  not null,
+    registry      varchar(255) not null default 'docker.io',
+    name          varchar(255) not null,
+    version       varchar(255) not null,
+    default_port  int          not null,
+    dialect       varchar(255) not null,
+    driver_class  varchar(255) not null,
+    jdbc_method   varchar(255) not null,
+    is_default    boolean      not null default false,
+    created       timestamp    not null default now(),
     last_modified timestamp,
-    PRIMARY KEY (id),
-    UNIQUE (name, version),
-    UNIQUE (is_default)
+    primary key (id),
+    unique (name, version),
+    unique (is_default)
 ) WITH SYSTEM VERSIONING;
 
 CREATE TABLE IF NOT EXISTS `mdb_containers`
 (
-    id                  SERIAL,
-    internal_name       character varying(255) NOT NULL,
-    name                character varying(255) NOT NULL,
-    host                character varying(255) NOT NULL,
-    port                integer                NOT NULL default 3306,
-    ui_host             character varying(255) NOT NULL default host,
-    ui_port             integer                NOT NULL default port,
+    id                  varchar(36)  not null,
+    internal_name       varchar(255) not null,
+    name                varchar(255) not null,
+    host                varchar(255) not null,
+    port                int          not null default 3306,
+    ui_host             varchar(255) not null default host,
+    ui_port             int          not null default port,
     ui_additional_flags text,
-    sidecar_host        character varying(255),
-    sidecar_port        integer,
-    image_id            bigint                 NOT NULL,
-    created             timestamp              NOT NULL DEFAULT NOW(),
+    sidecar_host        varchar(255),
+    sidecar_port        int,
+    image_id            bigint       not null,
+    created             timestamp    not null default now(),
     last_modified       timestamp,
-    privileged_username character varying(255) NOT NULL,
-    privileged_password character varying(255) NOT NULL,
-    quota               integer                NOT NULL DEFAULT 50,
-    PRIMARY KEY (id)
+    privileged_username varchar(255) not null,
+    privileged_password varchar(255) not null,
+    quota               int          not null default 50,
+    primary key (id)
 ) WITH SYSTEM VERSIONING;
 
 CREATE TABLE IF NOT EXISTS `mdb_data`
 (
-    ID           SERIAL,
+    id           varchar(36) not null,
     PROVENANCE   text,
     FileEncoding text,
-    FileType     character varying(100),
+    FileType     varchar(100),
     Version      text,
     Seperator    text,
-    PRIMARY KEY (ID)
+    primary key (ID)
 ) WITH SYSTEM VERSIONING;
 
 CREATE TABLE IF NOT EXISTS `mdb_licenses`
 (
-    identifier  character varying(255) NOT NULL,
-    uri         text                   NOT NULL,
-    description text                   NOT NULL,
-    PRIMARY KEY (identifier),
-    UNIQUE (uri(200))
+    identifier  varchar(255) not null,
+    uri         text         not null,
+    description text         not null,
+    primary key (identifier),
+    unique (uri(200))
 ) WITH SYSTEM VERSIONING;
 
 CREATE TABLE IF NOT EXISTS `mdb_databases`
 (
-    id               SERIAL,
-    cid              BIGINT UNSIGNED        NOT NULL,
-    name             character varying(255) NOT NULL,
-    internal_name    character varying(255) NOT NULL,
-    exchange_name    character varying(255) NOT NULL,
+    id               varchar(36)     not null,
+    cid              bigint unsigned not null,
+    name             varchar(255)    not null,
+    internal_name    varchar(255)    not null,
+    exchange_name    varchar(255)    not null,
     description      text,
-    engine           character varying(20),
-    is_public        boolean                NOT NULL DEFAULT TRUE,
-    is_schema_public boolean                NOT NULL DEFAULT TRUE,
+    engine           varchar(20),
+    is_public        boolean         not null default true,
+    is_schema_public boolean         not null default true,
     image            longblob,
-    owned_by         character varying(36),
-    contact_person   character varying(36),
-    created          timestamp              NOT NULL DEFAULT NOW(),
+    owned_by         varchar(36),
+    contact_person   varchar(36),
+    created          timestamp       not null default now(),
     last_modified    timestamp,
-    PRIMARY KEY (id),
-    FOREIGN KEY (cid) REFERENCES mdb_containers (id),
-    FOREIGN KEY (owned_by) REFERENCES mdb_users (id),
-    FOREIGN KEY (contact_person) REFERENCES mdb_users (id)
+    primary key (id),
+    foreign key (cid) references mdb_containers (id),
+    foreign key (owned_by) references mdb_users (id),
+    foreign key (contact_person) references mdb_users (id)
 ) WITH SYSTEM VERSIONING;
 
 CREATE TABLE IF NOT EXISTS `mdb_databases_subjects`
 (
-    dbid     BIGINT                 NOT NULL,
-    subjects character varying(255) NOT NULL,
-    PRIMARY KEY (dbid, subjects)
+    dbid     bigint       not null,
+    subjects varchar(255) not null,
+    primary key (dbid, subjects)
 ) WITH SYSTEM VERSIONING;
 
 CREATE TABLE IF NOT EXISTS `mdb_tables`
 (
-    ID               SERIAL,
-    tDBID            BIGINT UNSIGNED       NOT NULL,
-    tName            VARCHAR(64)           NOT NULL,
-    internal_name    VARCHAR(64)           NOT NULL,
-    queue_name       VARCHAR(255)          NOT NULL,
-    routing_key      VARCHAR(255),
-    tDescription     VARCHAR(2048),
-    num_rows         BIGINT,
-    data_length      BIGINT,
-    max_data_length  BIGINT,
-    avg_row_length   BIGINT,
-    `separator`      CHAR(1),
-    quote            CHAR(1),
-    element_null     VARCHAR(50),
-    skip_lines       BIGINT,
-    element_true     VARCHAR(50),
-    element_false    VARCHAR(50),
-    Version          TEXT,
-    created          timestamp             NOT NULL DEFAULT NOW(),
-    versioned        boolean               not null default true,
-    is_public        boolean               not null default true,
-    is_schema_public boolean               not null default true,
-    owned_by         character varying(36) NOT NULL,
+    id               varchar(36)     not null,
+    tDBID            bigint unsigned not null,
+    tName            varchar(64)     not null,
+    internal_name    varchar(64)     not null,
+    queue_name       varchar(255)    not null,
+    routing_key      varchar(255),
+    tDescription     varchar(2048),
+    num_rows         bigint,
+    data_length      bigint,
+    max_data_length  bigint,
+    avg_row_length   bigint,
+    `separator`      char(1),
+    quote            char(1),
+    element_null     varchar(50),
+    skip_lines       bigint,
+    element_true     varchar(50),
+    element_false    varchar(50),
+    Version          text,
+    created          timestamp       not null default now(),
+    versioned        boolean         not null default true,
+    is_public        boolean         not null default true,
+    is_schema_public boolean         not null default true,
+    owned_by         varchar(36)     not null,
     last_modified    timestamp,
-    PRIMARY KEY (ID),
-    UNIQUE (tDBID, internal_name),
-    FOREIGN KEY (tDBID) REFERENCES mdb_databases (id),
-    FOREIGN KEY (owned_by) REFERENCES mdb_users (id)
+    primary key (ID),
+    unique (tDBID, internal_name),
+    foreign key (tDBID) references mdb_databases (id),
+    foreign key (owned_by) references mdb_users (id)
 ) WITH SYSTEM VERSIONING;
 
 CREATE TABLE IF NOT EXISTS `mdb_columns`
 (
-    ID               SERIAL,
-    tID              BIGINT UNSIGNED NOT NULL,
-    cName            VARCHAR(64),
-    internal_name    VARCHAR(64)     NOT NULL,
-    Datatype         ENUM ('CHAR','VARCHAR','BINARY','VARBINARY','TINYBLOB','TINYTEXT','TEXT','BLOB','MEDIUMTEXT','MEDIUMBLOB','LONGTEXT','LONGBLOB','ENUM','SET','SERIAL','BIT','TINYINT','BOOL','SMALLINT','MEDIUMINT','INT','BIGINT','FLOAT','DOUBLE','DECIMAL','DATE','DATETIME','TIMESTAMP','TIME','YEAR'),
-    length           BIGINT UNSIGNED NULL,
-    ordinal_position INTEGER         NOT NULL,
-    index_length     BIGINT UNSIGNED NULL,
-    description      VARCHAR(2048),
-    size             BIGINT UNSIGNED,
-    d                BIGINT UNSIGNED,
-    is_null_allowed  BOOLEAN         NOT NULL DEFAULT true,
+    id               varchar(36)     not null,
+    tID              bigint unsigned not null,
+    cName            varchar(64),
+    internal_name    varchar(64)     not null,
+    Datatype         enum ('CHAR','VARCHAR','BINARY','VARBINARY','TINYBLOB','TINYTEXT','TEXT','BLOB','MEDIUMTEXT','MEDIUMBLOB','LONGTEXT','LONGBLOB','ENUM','SET','SERIAL','BIT','TINYINT','BOOL','SMALLINT','MEDIUMINT','INT','BIGINT','FLOAT','DOUBLE','DECIMAL','DATE','DATETIME','TIMESTAMP','TIME','YEAR'),
+    length           bigint unsigned NULL,
+    ordinal_position int             not null,
+    index_length     bigint unsigned NULL,
+    description      varchar(2048),
+    size             bigint unsigned,
+    d                bigint unsigned,
+    is_null_allowed  boolean         not null default true,
     val_min          NUMERIC         NULL,
     val_max          NUMERIC         NULL,
     mean             NUMERIC         NULL,
     median           NUMERIC         NULL,
     std_dev          Numeric         NULL,
-    created          timestamp       NOT NULL DEFAULT NOW(),
+    created          timestamp       not null default now(),
     last_modified    timestamp,
-    FOREIGN KEY (tID) REFERENCES mdb_tables (ID) ON DELETE CASCADE,
-    PRIMARY KEY (ID),
-    UNIQUE (tID, internal_name)
+    foreign key (tID) references mdb_tables (ID) ON DELETE CASCADE,
+    primary key (ID),
+    unique (tID, internal_name)
 ) WITH SYSTEM VERSIONING;
 
 CREATE TABLE IF NOT EXISTS `mdb_columns_enums`
 (
-    id        SERIAL,
-    column_id BIGINT UNSIGNED        NOT NULL,
-    value     CHARACTER VARYING(255) NOT NULL,
-    FOREIGN KEY (column_id) REFERENCES mdb_columns (ID) ON DELETE CASCADE,
-    PRIMARY KEY (id)
+    id        varchar(36)     not null,
+    column_id bigint unsigned not null,
+    value     varchar(255)    not null,
+    foreign key (column_id) references mdb_columns (ID) ON DELETE CASCADE,
+    primary key (id)
 ) WITH SYSTEM VERSIONING;
 
 CREATE TABLE IF NOT EXISTS `mdb_columns_sets`
 (
-    id        SERIAL,
-    column_id BIGINT UNSIGNED        NOT NULL,
-    value     CHARACTER VARYING(255) NOT NULL,
-    FOREIGN KEY (column_id) REFERENCES mdb_columns (ID) ON DELETE CASCADE,
-    PRIMARY KEY (id)
+    id        varchar(36)     not null,
+    column_id bigint unsigned not null,
+    value     varchar(255)    not null,
+    foreign key (column_id) references mdb_columns (ID) ON DELETE CASCADE,
+    primary key (id)
 ) WITH SYSTEM VERSIONING;
 
 CREATE TABLE IF NOT EXISTS `mdb_columns_nom`
 (
-    cID           BIGINT UNSIGNED,
-    tID           BIGINT UNSIGNED,
-    maxlength     INTEGER,
+    cID           bigint unsigned,
+    tID           bigint unsigned,
+    maxlength     int,
     last_modified timestamp,
-    created       timestamp NOT NULL DEFAULT NOW(),
-    PRIMARY KEY (cID),
-    FOREIGN KEY (cID) REFERENCES mdb_columns (ID)
+    created       timestamp not null default now(),
+    primary key (cID),
+    foreign key (cID) references mdb_columns (ID)
 ) WITH SYSTEM VERSIONING;
 
 CREATE TABLE IF NOT EXISTS `mdb_columns_cat`
 (
-    cID           BIGINT UNSIGNED,
-    tID           BIGINT UNSIGNED,
-    num_cat       INTEGER,
+    cID           bigint unsigned,
+    tID           bigint unsigned,
+    num_cat       int,
     --    cat_array     TEXT[],
     last_modified timestamp,
-    created       timestamp NOT NULL DEFAULT NOW(),
-    PRIMARY KEY (cID),
-    FOREIGN KEY (cID) REFERENCES mdb_columns (ID)
+    created       timestamp not null default now(),
+    primary key (cID),
+    foreign key (cID) references mdb_columns (ID)
 ) WITH SYSTEM VERSIONING;
 
 CREATE TABLE IF NOT EXISTS `mdb_constraints_foreign_key`
 (
-    fkid      SERIAL,
-    tid       BIGINT UNSIGNED NOT NULL,
-    rtid      BIGINT UNSIGNED NOT NULL,
-    name      VARCHAR(255)    NOT NULL,
-    on_update VARCHAR(50)     NULL,
-    on_delete VARCHAR(50)     NULL,
-    position  INT             NULL,
-    PRIMARY KEY (fkid),
-    FOREIGN KEY (tid) REFERENCES mdb_tables (id) ON DELETE CASCADE,
-    FOREIGN KEY (rtid) REFERENCES mdb_tables (id)
+    fkid      varchar(36)     not null,
+    tid       bigint unsigned not null,
+    rtid      bigint unsigned not null,
+    name      varchar(255)    not null,
+    on_update varchar(50)     NULL,
+    on_delete varchar(50)     NULL,
+    position  int             NULL,
+    primary key (fkid),
+    foreign key (tid) references mdb_tables (id) ON DELETE CASCADE,
+    foreign key (rtid) references mdb_tables (id)
 ) WITH SYSTEM VERSIONING;
 
 CREATE TABLE IF NOT EXISTS `mdb_constraints_primary_key`
 (
-    pkid SERIAL,
-    tID  BIGINT UNSIGNED NOT NULL,
-    cid  BIGINT UNSIGNED NOT NULL,
-    PRIMARY KEY (pkid),
-    FOREIGN KEY (tID) REFERENCES mdb_tables (id) ON DELETE CASCADE,
-    FOREIGN KEY (cid) REFERENCES mdb_columns (id) ON DELETE CASCADE
+    pkid varchar(36)     not null,
+    tID  bigint unsigned not null,
+    cid  bigint unsigned not null,
+    primary key (pkid),
+    foreign key (tID) references mdb_tables (id) ON DELETE CASCADE,
+    foreign key (cid) references mdb_columns (id) ON DELETE CASCADE
 ) WITH SYSTEM VERSIONING;
 
 CREATE TABLE IF NOT EXISTS `mdb_constraints_foreign_key_reference`
 (
-    id   SERIAL,
-    fkid BIGINT UNSIGNED NOT NULL,
-    cid  BIGINT UNSIGNED NOT NULL,
-    rcid BIGINT UNSIGNED NOT NULL,
-    PRIMARY KEY (id),
-    UNIQUE (fkid, cid, rcid),
-    FOREIGN KEY (fkid) REFERENCES mdb_constraints_foreign_key (fkid) ON UPDATE CASCADE,
-    FOREIGN KEY (cid) REFERENCES mdb_columns (id),
-    FOREIGN KEY (rcid) REFERENCES mdb_columns (id)
+    id   varchar(36)     not null,
+    fkid bigint unsigned not null,
+    cid  bigint unsigned not null,
+    rcid bigint unsigned not null,
+    primary key (id),
+    unique (fkid, cid, rcid),
+    foreign key (fkid) references mdb_constraints_foreign_key (fkid) ON UPDATE CASCADE,
+    foreign key (cid) references mdb_columns (id),
+    foreign key (rcid) references mdb_columns (id)
 ) WITH SYSTEM VERSIONING;
 
 CREATE TABLE IF NOT EXISTS `mdb_constraints_unique`
 (
-    uid      SERIAL,
-    name     VARCHAR(255)    NOT NULL,
-    tid      BIGINT UNSIGNED NOT NULL,
-    position INT             NULL,
-    PRIMARY KEY (uid),
-    FOREIGN KEY (tid) REFERENCES mdb_tables (id) ON DELETE CASCADE
+    uid      varchar(36)     not null,
+    name     varchar(255)    not null,
+    tid      bigint unsigned not null,
+    position int             NULL,
+    primary key (uid),
+    foreign key (tid) references mdb_tables (id) ON DELETE CASCADE
 );
 
 CREATE TABLE IF NOT EXISTS `mdb_constraints_unique_columns`
 (
-    id  SERIAL,
-    uid BIGINT UNSIGNED NOT NULL,
-    cid BIGINT UNSIGNED NOT NULL,
-    PRIMARY KEY (id),
-    FOREIGN KEY (uid) REFERENCES mdb_constraints_unique (uid),
-    FOREIGN KEY (cid) REFERENCES mdb_columns (id) ON DELETE CASCADE
+    id  varchar(36)     not null,
+    uid bigint unsigned not null,
+    cid bigint unsigned not null,
+    primary key (id),
+    foreign key (uid) references mdb_constraints_unique (uid),
+    foreign key (cid) references mdb_columns (id) ON DELETE CASCADE
 ) WITH SYSTEM VERSIONING;
 
 CREATE TABLE IF NOT EXISTS `mdb_constraints_checks`
 (
-    id     SERIAL,
-    tid    BIGINT UNSIGNED NOT NULL,
-    checks VARCHAR(255)    NOT NULL,
-    PRIMARY KEY (id),
-    FOREIGN KEY (tid) REFERENCES mdb_tables (id) ON DELETE CASCADE
+    id     varchar(36)     not null,
+    tid    bigint unsigned not null,
+    checks varchar(255)    not null,
+    primary key (id),
+    foreign key (tid) references mdb_tables (id) ON DELETE CASCADE
 ) WITH SYSTEM VERSIONING;
 
 
 CREATE TABLE IF NOT EXISTS `mdb_concepts`
 (
-    id          SERIAL,
+    id          varchar(36)  not null,
     uri         text         not null,
-    name        VARCHAR(255) null,
-    description TEXT         null,
-    created     timestamp    NOT NULL DEFAULT NOW(),
-    PRIMARY KEY (id),
-    UNIQUE (uri(200))
+    name        varchar(255) null,
+    description text         null,
+    created     timestamp    not null default now(),
+    primary key (id),
+    unique (uri(200))
 ) WITH SYSTEM VERSIONING;
 
 CREATE TABLE IF NOT EXISTS `mdb_units`
 (
-    id          SERIAL,
+    id          varchar(36)  not null,
     uri         text         not null,
-    name        VARCHAR(255) null,
-    description TEXT         null,
-    created     timestamp    NOT NULL DEFAULT NOW(),
-    PRIMARY KEY (id),
-    UNIQUE (uri(200))
+    name        varchar(255) null,
+    description text         null,
+    created     timestamp    not null default now(),
+    primary key (id),
+    unique (uri(200))
 ) WITH SYSTEM VERSIONING;
 
 CREATE TABLE IF NOT EXISTS `mdb_columns_concepts`
 (
-    id      BIGINT UNSIGNED NOT NULL,
-    cID     BIGINT UNSIGNED NOT NULL,
-    created timestamp       NOT NULL DEFAULT NOW(),
-    PRIMARY KEY (id, cid),
-    FOREIGN KEY (cID) REFERENCES mdb_columns (ID)
+    id      bigint unsigned not null,
+    cID     bigint unsigned not null,
+    created timestamp       not null default now(),
+    primary key (id, cid),
+    foreign key (cID) references mdb_columns (ID)
 ) WITH SYSTEM VERSIONING;
 
 CREATE TABLE IF NOT EXISTS `mdb_columns_units`
 (
-    id      BIGINT UNSIGNED NOT NULL,
-    cID     BIGINT UNSIGNED NOT NULL,
-    created timestamp       NOT NULL DEFAULT NOW(),
-    PRIMARY KEY (id, cID),
-    FOREIGN KEY (cID) REFERENCES mdb_columns (ID)
+    id      bigint unsigned not null,
+    cID     bigint unsigned not null,
+    created timestamp       not null default now(),
+    primary key (id, cID),
+    foreign key (cID) references mdb_columns (ID)
 ) WITH SYSTEM VERSIONING;
 
 CREATE TABLE IF NOT EXISTS `mdb_view`
 (
-    id               SERIAL,
-    vdbid            BIGINT UNSIGNED       NOT NULL,
-    vName            VARCHAR(64)           NOT NULL,
-    internal_name    VARCHAR(64)           NOT NULL,
-    Query            TEXT                  NOT NULL,
-    query_hash       VARCHAR(255)          NOT NULL,
-    Public           BOOLEAN               NOT NULL DEFAULT TRUE,
-    is_schema_public boolean               NOT NULL DEFAULT TRUE,
-    InitialView      BOOLEAN               NOT NULL,
-    created          timestamp             NOT NULL DEFAULT NOW(),
+    id               varchar(36)     not null,
+    vdbid            bigint unsigned not null,
+    vName            varchar(64)     not null,
+    internal_name    varchar(64)     not null,
+    Query            text            not null,
+    query_hash       varchar(255)    not null,
+    Public           boolean         not null default true,
+    is_schema_public boolean         not null default true,
+    InitialView      boolean         not null,
+    created          timestamp       not null default now(),
     last_modified    timestamp,
-    owned_by         character varying(36) NOT NULL,
-    PRIMARY KEY (id),
-    FOREIGN KEY (vdbid) REFERENCES mdb_databases (id),
-    FOREIGN KEY (owned_by) REFERENCES mdb_users (id)
+    owned_by         varchar(36)     not null,
+    primary key (id),
+    foreign key (vdbid) references mdb_databases (id),
+    foreign key (owned_by) references mdb_users (id)
 ) WITH SYSTEM VERSIONING;
 
-CREATE TABLE IF NOT EXISTS `mdb_banner_messages`
+CREATE TABLE IF NOT EXISTS `mdb_messages`
 (
-    id            SERIAL,
-    type          ENUM ('ERROR', 'WARNING', 'INFO') NOT NULL default 'INFO',
-    message       TEXT                              NOT NULL,
-    link          TEXT                              NULL,
-    link_text     VARCHAR(255)                      NULL,
+    id            varchar(36)                       not null,
+    type          enum ('ERROR', 'WARNING', 'INFO') not null default 'INFO',
+    message       text                              not null,
+    link          text                              NULL,
+    link_text     varchar(255)                      NULL,
     display_start timestamp                         NULL,
     display_end   timestamp                         NULL,
-    PRIMARY KEY (id)
+    primary key (id)
 ) WITH SYSTEM VERSIONING;
 
 CREATE TABLE IF NOT EXISTS `mdb_ontologies`
 (
-    id              SERIAL,
-    prefix          VARCHAR(8) NOT NULL,
-    uri             TEXT       NOT NULL,
-    uri_pattern     TEXT,
-    sparql_endpoint TEXT       NULL,
-    rdf_path        TEXT       NULL,
+    id              varchar(36) not null,
+    prefix          varchar(8)  not null,
+    uri             text        not null,
+    uri_pattern     text,
+    sparql_endpoint text        NULL,
+    rdf_path        text        NULL,
     last_modified   timestamp,
-    created         timestamp  NOT NULL DEFAULT NOW(),
-    UNIQUE (prefix),
-    UNIQUE (uri(200)),
-    PRIMARY KEY (id)
+    created         timestamp   not null default now(),
+    unique (prefix),
+    unique (uri(200)),
+    primary key (id)
 ) WITH SYSTEM VERSIONING;
 
 CREATE TABLE IF NOT EXISTS `mdb_view_columns`
 (
-    id               SERIAL,
-    view_id          BIGINT UNSIGNED NOT NULL,
-    name             VARCHAR(64),
-    internal_name    VARCHAR(64)     NOT NULL,
-    column_type      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'),
-    ordinal_position INTEGER         NOT NULL,
-    size             BIGINT UNSIGNED,
-    d                BIGINT UNSIGNED,
-    is_null_allowed  BOOLEAN         NOT NULL DEFAULT true,
-    PRIMARY KEY (id),
-    FOREIGN KEY (view_id) REFERENCES mdb_view (id) ON DELETE CASCADE,
-    UNIQUE (view_id, internal_name)
+    id               varchar(36)     not null,
+    view_id          bigint unsigned not null,
+    name             varchar(64),
+    internal_name    varchar(64)     not null,
+    column_type      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'),
+    ordinal_position int             not null,
+    size             bigint unsigned,
+    d                bigint unsigned,
+    is_null_allowed  boolean         not null default true,
+    primary key (id),
+    foreign key (view_id) references mdb_view (id) ON DELETE CASCADE,
+    unique (view_id, internal_name)
 ) WITH SYSTEM VERSIONING;
 
 CREATE TABLE IF NOT EXISTS `mdb_identifiers`
 (
-    id                SERIAL,
-    dbid              BIGINT UNSIGNED                              NOT NULL,
-    qid               BIGINT UNSIGNED,
-    vid               BIGINT UNSIGNED,
-    tid               BIGINT UNSIGNED,
-    publisher         VARCHAR(255)                                 NOT NULL,
-    language          VARCHAR(2),
-    publication_year  INTEGER                                      NOT NULL,
-    publication_month INTEGER,
-    publication_day   INTEGER,
-    identifier_type   ENUM ('DATABASE', 'SUBSET', 'VIEW', 'TABLE') NOT NULL,
-    status            ENUM ('DRAFT', 'PUBLISHED')                  NOT NULL DEFAULT ('PUBLISHED'),
-    query             TEXT,
-    query_normalized  TEXT,
-    query_hash        VARCHAR(255),
-    execution         TIMESTAMP,
-    result_hash       VARCHAR(255),
-    result_number     BIGINT,
-    doi               VARCHAR(255),
-    created           TIMESTAMP                                    NOT NULL DEFAULT NOW(),
-    owned_by          VARCHAR(36)                                  NOT NULL,
-    last_modified     TIMESTAMP,
-    PRIMARY KEY (id), /* must be a single id from persistent identifier concept */
-    FOREIGN KEY (dbid) REFERENCES mdb_databases (id),
-    FOREIGN KEY (owned_by) REFERENCES mdb_users (id)
+    id                varchar(36)                                  not null,
+    dbid              bigint unsigned                              not null,
+    qid               bigint unsigned,
+    vid               bigint unsigned,
+    tid               bigint unsigned,
+    publisher         varchar(255)                                 not null,
+    language          varchar(2),
+    publication_year  int                                          not null,
+    publication_month int,
+    publication_day   int,
+    identifier_type   enum ('DATABASE', 'SUBSET', 'VIEW', 'TABLE') not null,
+    status            enum ('DRAFT', 'PUBLISHED')                  not null default ('PUBLISHED'),
+    query             text,
+    query_normalized  text,
+    query_hash        varchar(255),
+    execution         timestamp,
+    result_hash       varchar(255),
+    result_number     bigint,
+    doi               varchar(255),
+    created           timestamp                                    not null default now(),
+    owned_by          varchar(36)                                  not null,
+    last_modified     timestamp,
+    primary key (id), /* must be a single id from persistent identifier concept */
+    foreign key (dbid) references mdb_databases (id),
+    foreign key (owned_by) references mdb_users (id)
 ) WITH SYSTEM VERSIONING;
 
 CREATE TABLE IF NOT EXISTS `mdb_identifier_licenses`
 (
-    pid        BIGINT UNSIGNED NOT NULL,
-    license_id VARCHAR(255)    NOT NULL,
-    PRIMARY KEY (pid, license_id),
-    FOREIGN KEY (pid) REFERENCES mdb_identifiers (id),
-    FOREIGN KEY (license_id) REFERENCES mdb_licenses (identifier)
+    pid        bigint unsigned not null,
+    license_id varchar(255)    not null,
+    primary key (pid, license_id),
+    foreign key (pid) references mdb_identifiers (id),
+    foreign key (license_id) references mdb_licenses (identifier)
 ) WITH SYSTEM VERSIONING;
 
 CREATE TABLE IF NOT EXISTS `mdb_identifier_titles`
 (
-    id         SERIAL,
-    pid        BIGINT UNSIGNED NOT NULL,
-    title      text            NOT NULL,
-    title_type ENUM ('ALTERNATIVE_TITLE', 'SUBTITLE', 'TRANSLATED_TITLE', 'OTHER'),
-    language   VARCHAR(2),
-    PRIMARY KEY (id),
-    FOREIGN KEY (pid) REFERENCES mdb_identifiers (id)
+    id         varchar(36)     not null,
+    pid        bigint unsigned not null,
+    title      text            not null,
+    title_type enum ('ALTERNATIVE_TITLE', 'SUBTITLE', 'TRANSLATED_TITLE', 'OTHER'),
+    language   varchar(2),
+    primary key (id),
+    foreign key (pid) references mdb_identifiers (id)
 ) WITH SYSTEM VERSIONING;
 
 CREATE TABLE IF NOT EXISTS `mdb_identifier_funders`
 (
-    id                     SERIAL,
-    pid                    BIGINT UNSIGNED NOT NULL,
-    funder_name            VARCHAR(255)    NOT NULL,
-    funder_identifier      TEXT,
-    funder_identifier_type ENUM ('CROSSREF_FUNDER_ID', 'GRID', 'ISNI', 'ROR', 'OTHER'),
+    id                     varchar(36)     not null,
+    pid                    bigint unsigned not null,
+    funder_name            varchar(255)    not null,
+    funder_identifier      text,
+    funder_identifier_type enum ('CROSSREF_FUNDER_ID', 'GRID', 'ISNI', 'ROR', 'OTHER'),
     scheme_uri             text,
-    award_number           VARCHAR(255),
+    award_number           varchar(255),
     award_title            text,
-    language               VARCHAR(255),
-    PRIMARY KEY (id),
-    FOREIGN KEY (pid) REFERENCES mdb_identifiers (id)
+    language               varchar(255),
+    primary key (id),
+    foreign key (pid) references mdb_identifiers (id)
 ) WITH SYSTEM VERSIONING;
 
 CREATE TABLE IF NOT EXISTS `mdb_identifier_descriptions`
 (
-    id               SERIAL,
-    pid              BIGINT UNSIGNED NOT NULL,
-    description      text            NOT NULL,
-    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)
+    id               varchar(36)     not null,
+    pid              bigint unsigned not null,
+    description      text            not null,
+    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)
 ) WITH SYSTEM VERSIONING;
 
-CREATE TABLE IF NOT EXISTS `mdb_related_identifiers`
+CREATE TABLE IF NOT EXISTS `mdb_identifier_related`
 (
-    id       SERIAL,
-    pid      BIGINT UNSIGNED                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      NOT NULL,
-    value    varchar(255)                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         NOT NULL,
-    type     ENUM ('DOI','URL','URN','ARK','ARXIV','BIBCODE','EAN13','EISSN','HANDLE','IGSN','ISBN','ISTC','LISSN','LSID','PMID','PURL','UPC','W3ID')                                                                                                                                                                                                                                                                                                                                                                                                                             NOT NULL,
-    relation 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') NOT NULL,
-    PRIMARY KEY (id), /* must be a single id from persistent identifier concept */
-    FOREIGN KEY (pid) REFERENCES mdb_identifiers (id),
-    UNIQUE (pid, value)
+    id       varchar(36)                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          not null,
+    pid      bigint unsigned                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      not null,
+    value    varchar(255)                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         not null,
+    type     enum ('DOI','URL','URN','ARK','ARXIV','BIBCODE','EAN13','EISSN','HANDLE','IGSN','ISBN','ISTC','LISSN','LSID','PMID','PURL','UPC','W3ID')                                                                                                                                                                                                                                                                                                                                                                                                                             not null,
+    relation 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') not null,
+    primary key (id), /* must be a single id from persistent identifier concept */
+    foreign key (pid) references mdb_identifiers (id),
+    unique (pid, value)
 ) WITH SYSTEM VERSIONING;
 
 CREATE TABLE IF NOT EXISTS `mdb_identifier_creators`
 (
-    id                                SERIAL,
-    pid                               BIGINT UNSIGNED NOT NULL,
+    id                                varchar(36)     not null,
+    pid                               bigint unsigned not null,
     given_names                       text,
     family_name                       text,
-    creator_name                      VARCHAR(255)    NOT NULL,
-    name_type                         ENUM ('PERSONAL', 'ORGANIZATIONAL') default 'PERSONAL',
+    creator_name                      varchar(255)    not null,
+    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                       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)
+    primary key (id),
+    foreign key (pid) references mdb_identifiers (id)
 ) WITH SYSTEM VERSIONING;
 
 CREATE TABLE IF NOT EXISTS `mdb_update`
 (
-    uUserID character varying(255) NOT NULL,
-    uDBID   BIGINT UNSIGNED        NOT NULL,
-    created timestamp              NOT NULL DEFAULT NOW(),
-    PRIMARY KEY (uUserID, uDBID),
-    FOREIGN KEY (uDBID) REFERENCES mdb_databases (id)
+    uUserID varchar(255)    not null,
+    uDBID   bigint unsigned not null,
+    created timestamp       not null default now(),
+    primary key (uUserID, uDBID),
+    foreign key (uDBID) references mdb_databases (id)
 ) WITH SYSTEM VERSIONING;
 
 CREATE TABLE IF NOT EXISTS `mdb_access`
 (
-    aUserID  character varying(255) NOT NULL,
-    aDBID    BIGINT UNSIGNED REFERENCES mdb_databases (id),
-    attime   TIMESTAMP,
-    download BOOLEAN,
-    created  timestamp              NOT NULL DEFAULT NOW(),
-    PRIMARY KEY (aUserID, aDBID)
+    aUserID  varchar(255) not null,
+    aDBID    bigint unsigned references mdb_databases (id),
+    attime   timestamp,
+    download boolean,
+    created  timestamp    not null default now(),
+    primary key (aUserID, aDBID)
 ) WITH SYSTEM VERSIONING;
 
 CREATE TABLE IF NOT EXISTS `mdb_have_access`
 (
-    user_id     character varying(36)                   NOT NULL,
-    database_id BIGINT UNSIGNED REFERENCES mdb_databases (id),
-    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)
+    user_id     varchar(36)                             not null,
+    database_id bigint unsigned references mdb_databases (id),
+    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)
 ) WITH SYSTEM VERSIONING;
 
 CREATE TABLE IF NOT EXISTS `mdb_image_types`
 (
-    id            SERIAL,
-    image_id      BIGINT UNSIGNED NOT NULL,
-    display_name  varchar(255)    NOT NULL,
-    value         varchar(255)    NOT NULL,
-    size_min      INT UNSIGNED,
-    size_max      INT UNSIGNED,
-    size_default  INT UNSIGNED,
-    size_required BOOLEAN COMMENT 'When setting NULL, the service assumes the data type has no size',
-    size_step     INT UNSIGNED,
-    d_min         INT UNSIGNED,
-    d_max         INT UNSIGNED,
-    d_default     INT UNSIGNED,
-    d_required    BOOLEAN COMMENT 'When setting NULL, the service assumes the data type has no d',
-    d_step        INT UNSIGNED,
-    type_hint     TEXT,
-    data_hint     TEXT,
-    documentation TEXT            NOT NULL,
-    is_generated  BOOLEAN         NOT NULL,
-    is_quoted     BOOLEAN         NOT NULL,
-    is_buildable  BOOLEAN         NOT NULL,
-    PRIMARY KEY (id),
-    FOREIGN KEY (image_id) REFERENCES `mdb_images` (`id`),
-    UNIQUE (value)
+    id            varchar(36)     not null,
+    image_id      bigint unsigned not null,
+    display_name  varchar(255)    not null,
+    value         varchar(255)    not null,
+    size_min      int unsigned,
+    size_max      int unsigned,
+    size_default  int unsigned,
+    size_required boolean comment 'When setting NULL, the service assumes the data type has no size',
+    size_step     int unsigned,
+    d_min         int unsigned,
+    d_max         int unsigned,
+    d_default     int unsigned,
+    d_required    boolean comment 'When setting NULL, the service assumes the data type has no d',
+    d_step        int unsigned,
+    type_hint     text,
+    data_hint     text,
+    documentation text            not null,
+    is_generated  boolean         not null,
+    is_quoted     boolean         not null,
+    is_buildable  boolean         not null,
+    primary key (id),
+    foreign key (image_id) references `mdb_images` (`id`),
+    unique (value)
 ) WITH SYSTEM VERSIONING;
 
 CREATE TABLE IF NOT EXISTS `mdb_image_operators`
 (
-    id            SERIAL,
-    image_id      BIGINT UNSIGNED NOT NULL,
-    display_name  varchar(255)    NOT NULL,
-    value         varchar(255)    NOT NULL,
-    documentation TEXT            NOT NULL,
-    PRIMARY KEY (id),
-    FOREIGN KEY (image_id) REFERENCES `mdb_images` (`id`),
-    UNIQUE (value)
+    id            varchar(36)     not null,
+    image_id      bigint unsigned not null,
+    display_name  varchar(255)    not null,
+    value         varchar(255)    not null,
+    documentation text            not null,
+    primary key (id),
+    foreign key (image_id) references `mdb_images` (`id`),
+    unique (value)
 ) WITH SYSTEM VERSIONING;
 
 COMMIT;
@@ -629,7 +629,7 @@ VALUES (1, 'BIGINT(size)', 'bigint', 0, null, null, false, 1, null, null, null,
         'https://mariadb.com/kb/en/year/', false, true, false),
        (1, 'VARBINARY(size)', 'varbinary', 0, null, null, true, null, null, null, null, null, null, null,
         null, 'https://mariadb.com/kb/en/varbinary/', false, true, false),
-       (1, 'VARCHAR(size)', 'varchar', 0, 65532, 255, true, null, null, null, null, null, null, null,
+       (1, 'varchar(size)', 'varchar', 0, 65532, 255, true, null, null, null, null, null, null, null,
         null, 'https://mariadb.com/kb/en/varchar/', false, true, false);
 
 INSERT INTO `mdb_image_operators` (image_id, display_name, value, documentation)
@@ -651,7 +651,7 @@ VALUES (1, 'Equal operator', '=', 'https://mariadb.com/kb/en/assignment-operator
        (1, 'NOT IN', 'NOT IN', 'https://mariadb.com/kb/en/not-in/'),
        (1, 'IS', 'IS', 'https://mariadb.com/kb/en/is/'),
        (1, 'IS NOT', 'IS NOT', 'https://mariadb.com/kb/en/is-not/'),
-       (1, 'IS NOT NULL', 'IS NOT NULL', 'https://mariadb.com/kb/en/is-not-null/'),
+       (1, 'IS not null', 'IS not null', 'https://mariadb.com/kb/en/is-not-null/'),
        (1, 'IS NULL', 'IS NULL', 'https://mariadb.com/kb/en/is-null/'),
        (1, 'ISNULL', 'ISNULL', 'https://mariadb.com/kb/en/isnull/'),
        (1, 'REGEXP', 'REGEXP', 'https://mariadb.com/kb/en/regexp/'),
diff --git a/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/auth/CredentialDto.java b/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/auth/CredentialDto.java
deleted file mode 100644
index a9f95ad04d..0000000000
--- a/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/auth/CredentialDto.java
+++ /dev/null
@@ -1,31 +0,0 @@
-package at.tuwien.api.auth;
-
-import io.swagger.v3.oas.annotations.media.Schema;
-import jakarta.validation.constraints.NotBlank;
-import jakarta.validation.constraints.NotNull;
-import lombok.*;
-import lombok.extern.jackson.Jacksonized;
-
-@Getter
-@Setter
-@Builder
-@EqualsAndHashCode
-@NoArgsConstructor
-@AllArgsConstructor
-@Jacksonized
-@ToString
-public class CredentialDto {
-
-    @NotBlank
-    @Schema(example = "password")
-    private String type;
-
-    @NotBlank
-    @Schema(example = "abc123")
-    private String value;
-
-    @NotNull
-    @Schema(example = "false")
-    private Boolean temporary;
-
-}
diff --git a/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/auth/JwtResponseDto.java b/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/auth/JwtResponseDto.java
deleted file mode 100644
index 93d562ca77..0000000000
--- a/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/auth/JwtResponseDto.java
+++ /dev/null
@@ -1,36 +0,0 @@
-package at.tuwien.api.auth;
-
-import io.swagger.v3.oas.annotations.media.Schema;
-import jakarta.validation.constraints.NotNull;
-import lombok.*;
-import lombok.extern.jackson.Jacksonized;
-
-import java.util.List;
-
-@Getter
-@Setter
-@Builder
-@EqualsAndHashCode
-@NoArgsConstructor
-@AllArgsConstructor
-@Jacksonized
-@ToString
-public class JwtResponseDto {
-
-    @NotNull
-    @ToString.Exclude
-    private String token;
-
-    private String type;
-
-    private Long id;
-
-    @Schema(example = "user")
-    private String username;
-
-    @Schema(example = "user@example.com")
-    private String email;
-
-    private List<String> roles;
-
-}
diff --git a/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/auth/KeycloakErrorDto.java b/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/auth/KeycloakErrorDto.java
deleted file mode 100644
index 01c0a2d034..0000000000
--- a/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/auth/KeycloakErrorDto.java
+++ /dev/null
@@ -1,31 +0,0 @@
-package at.tuwien.api.auth;
-
-import com.fasterxml.jackson.annotation.JsonProperty;
-import io.swagger.v3.oas.annotations.media.Schema;
-import jakarta.validation.constraints.NotNull;
-import lombok.*;
-import lombok.extern.jackson.Jacksonized;
-
-import java.io.Serializable;
-
-@Getter
-@Setter
-@Builder
-@EqualsAndHashCode
-@NoArgsConstructor
-@AllArgsConstructor
-@Jacksonized
-@ToString
-public class KeycloakErrorDto implements Serializable {
-
-    @NotNull
-    @Schema(example = "invalid_grant")
-    private String error;
-
-    @NotNull
-    @JsonProperty("error_description")
-    private String errorDescription;
-
-    private String errorMessage;
-
-}
diff --git a/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/auth/LoginRequestDto.java b/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/auth/LoginRequestDto.java
deleted file mode 100644
index 809de9881b..0000000000
--- a/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/auth/LoginRequestDto.java
+++ /dev/null
@@ -1,26 +0,0 @@
-package at.tuwien.api.auth;
-
-import io.swagger.v3.oas.annotations.media.Schema;
-import jakarta.validation.constraints.NotNull;
-import lombok.*;
-import lombok.extern.jackson.Jacksonized;
-
-@Getter
-@Setter
-@Builder
-@EqualsAndHashCode
-@NoArgsConstructor
-@AllArgsConstructor
-@Jacksonized
-@ToString
-public class LoginRequestDto {
-
-    @NotNull
-    @Schema(example = "user")
-    private String username;
-
-    @NotNull
-    @ToString.Exclude
-    private String password;
-
-}
diff --git a/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/auth/RefreshTokenRequestDto.java b/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/auth/RefreshTokenRequestDto.java
deleted file mode 100644
index 05b8dfd3b5..0000000000
--- a/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/auth/RefreshTokenRequestDto.java
+++ /dev/null
@@ -1,24 +0,0 @@
-package at.tuwien.api.auth;
-
-import com.fasterxml.jackson.annotation.JsonProperty;
-import io.swagger.v3.oas.annotations.media.Schema;
-import jakarta.validation.constraints.NotNull;
-import lombok.*;
-import lombok.extern.jackson.Jacksonized;
-
-@Getter
-@Setter
-@Builder
-@EqualsAndHashCode
-@NoArgsConstructor
-@AllArgsConstructor
-@Jacksonized
-@ToString
-public class RefreshTokenRequestDto {
-
-    @NotNull
-    @JsonProperty("refresh_token")
-    @Schema(example = "refresh_token")
-    private String refreshToken;
-
-}
diff --git a/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/auth/TokenIntrospectDto.java b/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/auth/TokenIntrospectDto.java
deleted file mode 100644
index 8a2fa624b5..0000000000
--- a/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/auth/TokenIntrospectDto.java
+++ /dev/null
@@ -1,83 +0,0 @@
-package at.tuwien.api.auth;
-
-import com.fasterxml.jackson.annotation.JsonProperty;
-import io.swagger.v3.oas.annotations.media.Schema;
-import jakarta.validation.constraints.NotNull;
-import lombok.*;
-import lombok.extern.jackson.Jacksonized;
-
-@Getter
-@Setter
-@Builder
-@EqualsAndHashCode
-@NoArgsConstructor
-@AllArgsConstructor
-@Jacksonized
-@ToString
-public class TokenIntrospectDto {
-
-    @NotNull
-    @Schema(description = "expiration timestamp", example = "1679602372")
-    private Long exp;
-
-    @NotNull
-    @Schema(example = "1679602072")
-    private Long iat;
-
-    @NotNull
-    @Schema(example = "6aa375aa-d5bb-4b1e-9f89-347084a739e3")
-    private String jti;
-
-    @NotNull
-    @Schema(description = "issuer", example = "6aa375aa-d5bb-4b1e-9f89-347084a739e3")
-    private String iss;
-
-    @NotNull
-    @Schema(description = "user id", example = "9670828b-8159-4642-be19-e77ca018e644")
-    private String sub;
-
-    @NotNull
-    @Schema(description = "type", example = "Bearer")
-    private String typ;
-
-    @NotNull
-    @Schema(example = "0170887f-4ffc-4bb7-9292-9334132cd430")
-    private String azp;
-
-    @NotNull
-    @Schema(example = "0170887f-4ffc-4bb7-9292-9334132cd430")
-    @JsonProperty("session_state")
-    private String sessionState;
-
-    @NotNull
-    @Schema(example = "1")
-    private Integer acr;
-
-    @NotNull
-    @JsonProperty("allowed-origins")
-    @Schema(example = "[\"*\"]")
-    private String[] allowedOrigins;
-
-    @NotNull
-    @JsonProperty("realm_access")
-    private RealmAccessDto realmAccess;
-
-    @NotNull
-    @JsonProperty("client_id")
-    @Schema(example = "dbrepo-client")
-    private String clientId;
-
-    @NotNull
-    @JsonProperty("preferred_username")
-    @Schema(example = "jdoe")
-    private String username;
-
-    @NotNull
-    @Schema(example = "openid email profile")
-    private String scope;
-
-    @NotNull
-    @Schema(example = "true")
-    private Boolean active;
-
-}
diff --git a/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/container/ContainerBriefDto.java b/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/container/ContainerBriefDto.java
index 71e7601b16..91253b12ba 100644
--- a/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/container/ContainerBriefDto.java
+++ b/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/container/ContainerBriefDto.java
@@ -10,6 +10,7 @@ import lombok.*;
 import lombok.extern.jackson.Jacksonized;
 
 import java.time.Instant;
+import java.util.UUID;
 
 @Getter
 @Setter
@@ -22,8 +23,8 @@ import java.time.Instant;
 public class ContainerBriefDto {
 
     @NotNull
-    @Schema(example = "4")
-    private Long id;
+    @Schema(example = "7ddb7e87-b965-43a2-9a24-4fa406d998f4")
+    private UUID id;
 
     @NotNull
     @Schema(example = "f829dd8a884182d0da846f365dee1221fd16610a14c81b8f9f295ff162749e50")
diff --git a/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/container/ContainerDto.java b/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/container/ContainerDto.java
index 913ab26d9d..bc42dd7105 100644
--- a/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/container/ContainerDto.java
+++ b/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/container/ContainerDto.java
@@ -10,6 +10,7 @@ import lombok.*;
 import lombok.extern.jackson.Jacksonized;
 
 import java.time.Instant;
+import java.util.UUID;
 
 @Getter
 @Setter
@@ -22,8 +23,8 @@ import java.time.Instant;
 public class ContainerDto extends CacheableDto {
 
     @NotNull
-    @Schema(example = "4")
-    private Long id;
+    @Schema(example = "7ddb7e87-b965-43a2-9a24-4fa406d998f4")
+    private UUID id;
 
     @NotBlank
     @Schema(example = "Air Quality")
diff --git a/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/container/CreateContainerDto.java b/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/container/CreateContainerDto.java
index 23062ffd90..f2ac7df46a 100644
--- a/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/container/CreateContainerDto.java
+++ b/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/container/CreateContainerDto.java
@@ -7,6 +7,8 @@ import jakarta.validation.constraints.NotNull;
 import lombok.*;
 import lombok.extern.jackson.Jacksonized;
 
+import java.util.UUID;
+
 @Getter
 @Setter
 @Builder
@@ -22,8 +24,8 @@ public class CreateContainerDto {
 
     @NotNull
     @JsonProperty("image_id")
-    @Schema(example = "1", description = "Image ID")
-    private Long imageId;
+    @Schema(example = "2360f3c4-85e0-4fac-a7c6-73b296b9dde2", description = "Image ID")
+    private UUID imageId;
 
     @NotBlank
     @Schema(example = "data-db2", description = "Hostname of container")
diff --git a/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/container/image/ImageBriefDto.java b/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/container/image/ImageBriefDto.java
index 6a9a970c0f..ecbd050966 100644
--- a/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/container/image/ImageBriefDto.java
+++ b/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/container/image/ImageBriefDto.java
@@ -7,6 +7,8 @@ import jakarta.validation.constraints.NotNull;
 import lombok.*;
 import lombok.extern.jackson.Jacksonized;
 
+import java.util.UUID;
+
 @Getter
 @Setter
 @Builder
@@ -18,8 +20,8 @@ import lombok.extern.jackson.Jacksonized;
 public class ImageBriefDto {
 
     @NotNull
-    @Schema(example = "5")
-    private Long id;
+    @Schema(example = "816f55d5-1098-4f60-a4af-c8121c04dcce")
+    private UUID id;
 
     @NotBlank
     @Schema(example = "mariadb")
@@ -29,11 +31,6 @@ public class ImageBriefDto {
     @Schema(example = "10.5")
     private String version;
 
-    @NotBlank
-    @JsonProperty("jdbc_method")
-    @Schema(example = "mariadb")
-    private String jdbcMethod;
-
     @NotNull
     @JsonProperty("default")
     @Schema(example = "false")
diff --git a/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/container/image/ImageDto.java b/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/container/image/ImageDto.java
index a9c37fb848..ec4b0ad489 100644
--- a/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/container/image/ImageDto.java
+++ b/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/container/image/ImageDto.java
@@ -1,5 +1,6 @@
 package at.tuwien.api.container.image;
 
+import com.fasterxml.jackson.annotation.JsonIgnore;
 import com.fasterxml.jackson.annotation.JsonProperty;
 import io.swagger.v3.oas.annotations.media.Schema;
 import jakarta.validation.constraints.NotBlank;
@@ -8,6 +9,7 @@ import lombok.*;
 import lombok.extern.jackson.Jacksonized;
 
 import java.util.List;
+import java.util.UUID;
 
 @Getter
 @Setter
@@ -20,12 +22,8 @@ import java.util.List;
 public class ImageDto {
 
     @NotNull
-    @Schema(example = "1")
-    private Long id;
-
-    @NotBlank
-    @Schema(example = "docker.io/library")
-    private String registry;
+    @Schema(example = "816f55d5-1098-4f60-a4af-c8121c04dcce")
+    private UUID id;
 
     @NotBlank
     @Schema(example = "mariadb")
@@ -36,16 +34,7 @@ public class ImageDto {
     private String version;
 
     @NotBlank
-    @JsonProperty("driver_class")
-    @Schema(example = "org.mariadb.jdbc.Driver")
-    private String driverClass;
-
-    @NotBlank
-    @Schema(example = "org.hibernate.dialect.MariaDBDialect")
-    private String dialect;
-
-    @NotBlank
-    @JsonProperty("jdbc_method")
+    @JsonIgnore
     @Schema(example = "mariadb")
     private String jdbcMethod;
 
@@ -54,11 +43,6 @@ public class ImageDto {
     @Schema(example = "false")
     private Boolean isDefault;
 
-    @NotNull
-    @JsonProperty("default_port")
-    @Schema(example = "3306")
-    private Integer defaultPort;
-
     @NotNull
     @JsonProperty("data_types")
     private List<DataTypeDto> dataTypes;
diff --git a/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/container/image/OperatorDto.java b/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/container/image/OperatorDto.java
index 96113b5347..b4b9061354 100644
--- a/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/container/image/OperatorDto.java
+++ b/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/container/image/OperatorDto.java
@@ -7,6 +7,8 @@ import jakarta.validation.constraints.NotNull;
 import lombok.*;
 import lombok.extern.jackson.Jacksonized;
 
+import java.util.UUID;
+
 @Getter
 @Setter
 @Builder
@@ -17,7 +19,7 @@ import lombok.extern.jackson.Jacksonized;
 @ToString
 public class OperatorDto {
 
-    private Long id;
+    private UUID id;
 
     @NotBlank
     @JsonProperty("display_name")
diff --git a/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/database/CreateDatabaseDto.java b/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/database/CreateDatabaseDto.java
index c10d6b0b5e..e7fd08e771 100644
--- a/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/database/CreateDatabaseDto.java
+++ b/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/database/CreateDatabaseDto.java
@@ -7,6 +7,8 @@ import jakarta.validation.constraints.NotNull;
 import lombok.*;
 import lombok.extern.jackson.Jacksonized;
 
+import java.util.UUID;
+
 @Getter
 @Setter
 @Builder
@@ -19,8 +21,8 @@ public class CreateDatabaseDto {
 
     @NotNull
     @JsonProperty("container_id")
-    @Schema(example = "1")
-    private Long cid;
+    @Schema(example = "0888e108-d521-46e2-9d3e-82099185305b")
+    private UUID cid;
 
     @NotBlank
     @Schema(example = "Air Quality")
diff --git a/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/database/DatabaseAccessDto.java b/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/database/DatabaseAccessDto.java
index d065a5892a..7e393561f8 100644
--- a/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/database/DatabaseAccessDto.java
+++ b/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/database/DatabaseAccessDto.java
@@ -26,7 +26,7 @@ public class DatabaseAccessDto {
 
     @NotNull
     @JsonIgnore
-    private Long hdbid;
+    private UUID hdbid;
 
     @NotNull
     private UserBriefDto user;
diff --git a/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/database/DatabaseBriefDto.java b/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/database/DatabaseBriefDto.java
index 4cff48db18..4bb262b781 100644
--- a/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/database/DatabaseBriefDto.java
+++ b/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/database/DatabaseBriefDto.java
@@ -23,8 +23,8 @@ import java.util.UUID;
 public class DatabaseBriefDto {
 
     @NotNull
-    @Schema(example = "3")
-    private Long id;
+    @Schema(example = "fc29f89c-86a8-4020-9e36-4d954736c6cc")
+    private UUID id;
 
     @NotBlank
     @Schema(example = "Air Quality")
diff --git a/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/database/DatabaseDto.java b/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/database/DatabaseDto.java
index d6ea2bff9e..5ecca1bebc 100644
--- a/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/database/DatabaseDto.java
+++ b/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/database/DatabaseDto.java
@@ -14,6 +14,7 @@ import lombok.extern.jackson.Jacksonized;
 
 import java.time.Instant;
 import java.util.List;
+import java.util.UUID;
 
 @Getter
 @Setter
@@ -26,8 +27,8 @@ import java.util.List;
 public class DatabaseDto extends CacheableDto {
 
     @NotNull
-    @Schema(example = "3")
-    private Long id;
+    @Schema(example = "fc29f89c-86a8-4020-9e36-4d954736c6cc")
+    private UUID id;
 
     @NotBlank
     @Schema(example = "Air Quality")
diff --git a/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/database/SubjectModifyDto.java b/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/database/SubjectModifyDto.java
deleted file mode 100644
index a82f6669ed..0000000000
--- a/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/database/SubjectModifyDto.java
+++ /dev/null
@@ -1,24 +0,0 @@
-package at.tuwien.api.database;
-
-import io.swagger.v3.oas.annotations.media.Schema;
-import jakarta.validation.constraints.NotNull;
-import lombok.*;
-import lombok.extern.jackson.Jacksonized;
-
-@Getter
-@Setter
-@Builder
-@EqualsAndHashCode
-@NoArgsConstructor
-@AllArgsConstructor
-@Jacksonized
-@ToString
-public class SubjectModifyDto {
-
-    private Long id;
-
-    @NotNull
-    @Schema(example = "air")
-    private String name;
-
-}
diff --git a/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/database/ViewBriefDto.java b/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/database/ViewBriefDto.java
index f68067e8a8..47107ac54f 100644
--- a/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/database/ViewBriefDto.java
+++ b/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/database/ViewBriefDto.java
@@ -20,13 +20,13 @@ import java.util.UUID;
 public class ViewBriefDto {
 
     @NotNull
-    @Schema(example = "4")
-    private Long id;
+    @Schema(example = "787439d0-e85e-400c-a7e6-996a023bfad9")
+    private UUID id;
 
     @NotNull
     @JsonProperty("database_id")
-    @Schema(example = "1")
-    private Long vdbid;
+    @Schema(example = "2b5b2b03-fdd0-40d6-afe0-e5d02fd839e4")
+    private UUID vdbid;
 
     @NotBlank
     @Schema(example = "Air Quality")
diff --git a/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/database/ViewColumnDto.java b/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/database/ViewColumnDto.java
index 24cca8e4cc..766fbfd321 100644
--- a/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/database/ViewColumnDto.java
+++ b/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/database/ViewColumnDto.java
@@ -9,6 +9,8 @@ import jakarta.validation.constraints.Size;
 import lombok.*;
 import lombok.extern.jackson.Jacksonized;
 
+import java.util.UUID;
+
 @Getter
 @Setter
 @Builder
@@ -20,13 +22,13 @@ import lombok.extern.jackson.Jacksonized;
 public class ViewColumnDto {
 
     @NotNull
-    @Schema(example = "12")
-    private Long id;
+    @Schema(example = "6aec3a91-2e0b-4e92-a16a-9c3c5e892da1")
+    private UUID id;
 
     @NotNull
     @JsonProperty("database_id")
-    @Schema(example = "1")
-    private Long databaseId;
+    @Schema(example = "2b5b2b03-fdd0-40d6-afe0-e5d02fd839e4")
+    private UUID databaseId;
 
     @NotNull
     @JsonProperty("ord")
diff --git a/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/database/ViewDto.java b/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/database/ViewDto.java
index 82a7081e16..7abd471215 100644
--- a/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/database/ViewDto.java
+++ b/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/database/ViewDto.java
@@ -12,6 +12,7 @@ import lombok.extern.jackson.Jacksonized;
 
 import java.time.Instant;
 import java.util.List;
+import java.util.UUID;
 
 @Getter
 @Setter
@@ -24,13 +25,13 @@ import java.util.List;
 public class ViewDto extends CacheableDto {
 
     @NotNull
-    @Schema(example = "4")
-    private Long id;
+    @Schema(example = "787439d0-e85e-400c-a7e6-996a023bfad9")
+    private UUID id;
 
     @NotNull
     @JsonProperty("database_id")
-    @Schema(example = "1")
-    private Long vdbid;
+    @Schema(example = "2b5b2b03-fdd0-40d6-afe0-e5d02fd839e4")
+    private UUID vdbid;
 
     @NotBlank
     @Schema(example = "Air Quality")
diff --git a/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/database/internal/CreateDatabaseDto.java b/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/database/internal/CreateDatabaseDto.java
index b2efa7567e..76ee117931 100644
--- a/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/database/internal/CreateDatabaseDto.java
+++ b/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/database/internal/CreateDatabaseDto.java
@@ -20,8 +20,8 @@ public class CreateDatabaseDto {
 
     @NotNull
     @JsonProperty("container_id")
-    @Schema(example = "1")
-    private Long containerId;
+    @Schema(example = "83ea2326-f8f6-4263-baf8-cdf88a54efc7")
+    private UUID containerId;
 
     @NotBlank
     @JsonProperty("internal_name")
diff --git a/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/database/query/ExecuteInternalQueryDto.java b/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/database/query/ExecuteInternalQueryDto.java
deleted file mode 100644
index 1cc1d501c8..0000000000
--- a/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/database/query/ExecuteInternalQueryDto.java
+++ /dev/null
@@ -1,21 +0,0 @@
-package at.tuwien.api.database.query;
-
-import com.fasterxml.jackson.annotation.JsonProperty;
-import lombok.*;
-import lombok.extern.jackson.Jacksonized;
-
-@Getter
-@Setter
-@Builder
-@NoArgsConstructor
-@AllArgsConstructor
-@Jacksonized
-@ToString
-public class ExecuteInternalQueryDto {
-
-    @JsonProperty("container_id")
-    private String containerId;
-
-    private String query;
-
-}
diff --git a/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/database/query/QueryBriefDto.java b/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/database/query/QueryBriefDto.java
index 90a1af28bc..c55a108cfc 100644
--- a/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/database/query/QueryBriefDto.java
+++ b/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/database/query/QueryBriefDto.java
@@ -12,6 +12,7 @@ import lombok.extern.jackson.Jacksonized;
 
 import java.time.Instant;
 import java.util.List;
+import java.util.UUID;
 
 
 @Getter
@@ -25,11 +26,13 @@ import java.util.List;
 public class QueryBriefDto {
 
     @NotNull
-    private Long id;
+    @Schema(example = "83ea2326-f8f6-4263-baf8-cdf88a54efc7")
+    private UUID id;
 
     @NotNull
     @JsonProperty("database_id")
-    private Long databaseId;
+    @Schema(example = "1a6fb0c0-49c3-4a22-a515-35f7a3dd8e62")
+    private UUID databaseId;
 
     @NotNull
     private UserBriefDto owner;
diff --git a/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/database/query/QueryDto.java b/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/database/query/QueryDto.java
index 41cb641a5d..3b0f17086a 100644
--- a/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/database/query/QueryDto.java
+++ b/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/database/query/QueryDto.java
@@ -12,6 +12,7 @@ import lombok.extern.jackson.Jacksonized;
 
 import java.time.Instant;
 import java.util.List;
+import java.util.UUID;
 
 @Getter
 @Setter
@@ -24,13 +25,13 @@ import java.util.List;
 public class QueryDto {
 
     @NotNull
-    @Schema(example = "4")
-    private Long id;
+    @Schema(example = "83ea2326-f8f6-4263-baf8-cdf88a54efc7")
+    private UUID id;
 
     @NotNull
     @JsonProperty("database_id")
-    @Schema(example = "1")
-    private Long databaseId;
+    @Schema(example = "1a6fb0c0-49c3-4a22-a515-35f7a3dd8e62")
+    private UUID databaseId;
 
     @NotNull
     private UserBriefDto owner;
diff --git a/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/database/table/TableBriefDto.java b/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/database/table/TableBriefDto.java
index 98932f30a2..3ba910b979 100644
--- a/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/database/table/TableBriefDto.java
+++ b/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/database/table/TableBriefDto.java
@@ -20,13 +20,13 @@ import java.util.UUID;
 public class TableBriefDto {
 
     @NotNull
-    @Schema(example = "3")
-    private Long id;
+    @Schema(example = "41ed10e0-687b-4e18-8521-810f5cffbce1")
+    private UUID id;
 
     @NotNull
     @JsonProperty("database_id")
-    @Schema(example = "2")
-    private Long databaseId;
+    @Schema(example = "a8fec026-dfaf-4b1d-8f6c-f01720d91705")
+    private UUID databaseId;
 
     @NotBlank
     @Schema(example = "Air Quality")
diff --git a/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/database/table/TableDto.java b/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/database/table/TableDto.java
index 1021d167ca..3104794394 100644
--- a/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/database/table/TableDto.java
+++ b/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/database/table/TableDto.java
@@ -18,6 +18,7 @@ import lombok.extern.jackson.Jacksonized;
 
 import java.time.Instant;
 import java.util.List;
+import java.util.UUID;
 
 @Getter
 @Setter
@@ -30,13 +31,13 @@ import java.util.List;
 public class TableDto extends CacheableDto {
 
     @NotNull
-    @Schema(example = "3")
-    private Long id;
+    @Schema(example = "d346f844-b84c-490f-9aec-725a2dc8f820")
+    private UUID id;
 
     @NotNull
     @JsonProperty("database_id")
-    @Schema(example = "2")
-    private Long tdbid;
+    @Schema(example = "692511b6-5af3-4043-8b9b-626af8756d92")
+    private UUID tdbid;
 
     @NotBlank
     @Schema(example = "Air Quality")
diff --git a/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/database/table/TableKeyDto.java b/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/database/table/TableKeyDto.java
deleted file mode 100644
index 010bc68af2..0000000000
--- a/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/database/table/TableKeyDto.java
+++ /dev/null
@@ -1,24 +0,0 @@
-package at.tuwien.api.database.table;
-
-import jakarta.validation.constraints.NotNull;
-import lombok.*;
-import lombok.extern.jackson.Jacksonized;
-
-@Getter
-@Setter
-@Builder
-@NoArgsConstructor
-@AllArgsConstructor
-@Jacksonized
-@ToString
-public class TableKeyDto {
-
-    @NotNull
-    private Long containerId;
-
-    @NotNull
-    private Long databaseId;
-
-    @NotNull
-    private Long id;
-}
diff --git a/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/database/table/columns/ColumnBriefDto.java b/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/database/table/columns/ColumnBriefDto.java
index bc13700bdd..08ee40caa4 100644
--- a/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/database/table/columns/ColumnBriefDto.java
+++ b/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/database/table/columns/ColumnBriefDto.java
@@ -8,6 +8,8 @@ import jakarta.validation.constraints.Size;
 import lombok.*;
 import lombok.extern.jackson.Jacksonized;
 
+import java.util.UUID;
+
 @Getter
 @Setter
 @Builder
@@ -19,18 +21,18 @@ import lombok.extern.jackson.Jacksonized;
 public class ColumnBriefDto {
 
     @NotNull
-    @Schema(example = "1")
-    private Long id;
+    @Schema(example = "a453e444-e00d-41ca-902c-11e9c54b39f1")
+    private UUID id;
 
     @NotNull
-    @Schema(example = "2")
     @JsonProperty("database_id")
-    private Long databaseId;
+    @Schema(example = "911f9052-c58c-4e1c-b3f2-66af2107be16")
+    private UUID databaseId;
 
     @NotNull
-    @Schema(example = "3")
     @JsonProperty("table_id")
-    private Long tableId;
+    @Schema(example = "bfffa915-a547-4466-9c65-ddc0d38fdb08")
+    private UUID tableId;
 
     @NotBlank
     @Size(max = 64)
diff --git a/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/database/table/columns/ColumnDto.java b/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/database/table/columns/ColumnDto.java
index 462821b53c..d50945740e 100644
--- a/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/database/table/columns/ColumnDto.java
+++ b/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/database/table/columns/ColumnDto.java
@@ -13,6 +13,7 @@ import lombok.extern.jackson.Jacksonized;
 
 import java.math.BigDecimal;
 import java.util.List;
+import java.util.UUID;
 
 @Getter
 @Setter
@@ -25,18 +26,18 @@ import java.util.List;
 public class ColumnDto {
 
     @NotNull
-    @Schema(example = "1")
-    private Long id;
+    @Schema(example = "a453e444-e00d-41ca-902c-11e9c54b39f1")
+    private UUID id;
 
     @NotNull
     @JsonProperty("database_id")
-    @Schema(example = "2")
-    private Long databaseId;
+    @Schema(example = "911f9052-c58c-4e1c-b3f2-66af2107be16")
+    private UUID databaseId;
 
     @NotNull
     @JsonProperty("table_id")
-    @Schema(example = "3")
-    private Long tableId;
+    @Schema(example = "bfffa915-a547-4466-9c65-ddc0d38fdb08")
+    private UUID tableId;
 
     @NotNull
     @JsonProperty("ord")
diff --git a/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/database/table/columns/concepts/ConceptBriefDto.java b/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/database/table/columns/concepts/ConceptBriefDto.java
index 3cc1231c74..160807e7aa 100644
--- a/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/database/table/columns/concepts/ConceptBriefDto.java
+++ b/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/database/table/columns/concepts/ConceptBriefDto.java
@@ -6,6 +6,8 @@ import jakarta.validation.constraints.NotNull;
 import lombok.*;
 import lombok.extern.jackson.Jacksonized;
 
+import java.util.UUID;
+
 @Getter
 @Setter
 @Builder
@@ -17,8 +19,8 @@ import lombok.extern.jackson.Jacksonized;
 public class ConceptBriefDto {
 
     @NotNull
-    @Schema(example = "23")
-    private Long id;
+    @Schema(example = "8cabc011-4bdf-44d4-9d33-b2648e2ddbf1")
+    private UUID id;
 
     @NotBlank
     @Schema(example = "http://www.wikidata.org/entity/Q202444")
diff --git a/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/database/table/columns/concepts/ConceptDto.java b/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/database/table/columns/concepts/ConceptDto.java
index da00e64e83..1359556943 100644
--- a/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/database/table/columns/concepts/ConceptDto.java
+++ b/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/database/table/columns/concepts/ConceptDto.java
@@ -1,12 +1,14 @@
 package at.tuwien.api.database.table.columns.concepts;
 
 import at.tuwien.api.database.table.columns.ColumnBriefDto;
+import io.swagger.v3.oas.annotations.media.Schema;
 import jakarta.validation.constraints.NotBlank;
 import jakarta.validation.constraints.NotNull;
 import lombok.*;
 import lombok.extern.jackson.Jacksonized;
 
 import java.util.List;
+import java.util.UUID;
 
 @Getter
 @Setter
@@ -19,7 +21,8 @@ import java.util.List;
 public class ConceptDto {
 
     @NotNull
-    private Long id;
+    @Schema(example = "8cabc011-4bdf-44d4-9d33-b2648e2ddbf1")
+    private UUID id;
 
     @NotBlank
     private String uri;
diff --git a/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/database/table/columns/concepts/UnitBriefDto.java b/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/database/table/columns/concepts/UnitBriefDto.java
index 15d9ae9082..789f3de150 100644
--- a/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/database/table/columns/concepts/UnitBriefDto.java
+++ b/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/database/table/columns/concepts/UnitBriefDto.java
@@ -6,6 +6,8 @@ import jakarta.validation.constraints.NotNull;
 import lombok.*;
 import lombok.extern.jackson.Jacksonized;
 
+import java.util.UUID;
+
 @Getter
 @Setter
 @Builder
@@ -17,8 +19,8 @@ import lombok.extern.jackson.Jacksonized;
 public class UnitBriefDto {
 
     @NotNull
-    @Schema(example = "34")
-    private Long id;
+    @Schema(example = "ba1935e8-6817-488f-af0a-f54389af9000")
+    private UUID id;
 
     @NotBlank
     @Schema(example = "http://www.wikidata.org/entity/Q1422583")
diff --git a/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/database/table/columns/concepts/UnitDto.java b/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/database/table/columns/concepts/UnitDto.java
index 48c7180c06..ca3899f7cc 100644
--- a/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/database/table/columns/concepts/UnitDto.java
+++ b/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/database/table/columns/concepts/UnitDto.java
@@ -1,12 +1,14 @@
 package at.tuwien.api.database.table.columns.concepts;
 
 import at.tuwien.api.database.table.columns.ColumnBriefDto;
+import io.swagger.v3.oas.annotations.media.Schema;
 import jakarta.validation.constraints.NotBlank;
 import jakarta.validation.constraints.NotNull;
 import lombok.*;
 import lombok.extern.jackson.Jacksonized;
 
 import java.util.List;
+import java.util.UUID;
 
 @Getter
 @Setter
@@ -19,7 +21,8 @@ import java.util.List;
 public class UnitDto {
 
     @NotNull
-    private Long id;
+    @Schema(example = "ba1935e8-6817-488f-af0a-f54389af9000")
+    private UUID id;
 
     @NotBlank
     private String uri;
diff --git a/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/database/table/constraints/foreign/ForeignKeyBriefDto.java b/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/database/table/constraints/foreign/ForeignKeyBriefDto.java
index 56dd986324..4acc205efd 100644
--- a/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/database/table/constraints/foreign/ForeignKeyBriefDto.java
+++ b/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/database/table/constraints/foreign/ForeignKeyBriefDto.java
@@ -4,6 +4,8 @@ import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.*;
 import lombok.extern.jackson.Jacksonized;
 
+import java.util.UUID;
+
 @Getter
 @Setter
 @Builder
@@ -13,6 +15,6 @@ import lombok.extern.jackson.Jacksonized;
 @ToString
 public class ForeignKeyBriefDto {
 
-    @Schema(example = "8")
-    private Long id;
+    @Schema(example = "f2b740ec-0b13-4d07-88a9-529d354bba6a")
+    private UUID id;
 }
diff --git a/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/database/table/constraints/foreign/ForeignKeyDto.java b/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/database/table/constraints/foreign/ForeignKeyDto.java
index 254666f9eb..94063c77dc 100644
--- a/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/database/table/constraints/foreign/ForeignKeyDto.java
+++ b/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/database/table/constraints/foreign/ForeignKeyDto.java
@@ -10,6 +10,7 @@ import lombok.*;
 import lombok.extern.jackson.Jacksonized;
 
 import java.util.List;
+import java.util.UUID;
 
 @Getter
 @Setter
@@ -20,8 +21,8 @@ import java.util.List;
 @ToString
 public class ForeignKeyDto {
 
-    @Schema(example = "4")
-    private Long id;
+    @Schema(example = "f2b740ec-0b13-4d07-88a9-529d354bba6a")
+    private UUID id;
 
     @NotNull
     @Schema(example = "fk_name")
diff --git a/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/database/table/constraints/foreign/ForeignKeyReferenceDto.java b/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/database/table/constraints/foreign/ForeignKeyReferenceDto.java
index f0d5b249cd..2423b92a62 100644
--- a/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/database/table/constraints/foreign/ForeignKeyReferenceDto.java
+++ b/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/database/table/constraints/foreign/ForeignKeyReferenceDto.java
@@ -7,6 +7,8 @@ import jakarta.validation.constraints.NotNull;
 import lombok.*;
 import lombok.extern.jackson.Jacksonized;
 
+import java.util.UUID;
+
 @Getter
 @Setter
 @Builder
@@ -16,8 +18,8 @@ import lombok.extern.jackson.Jacksonized;
 @ToString
 public class ForeignKeyReferenceDto {
 
-    @Schema(example = "8")
-    private Long id;
+    @Schema(example = "f2b740ec-0b13-4d07-88a9-529d354bba6a")
+    private UUID id;
 
     @NotNull
     @JsonProperty("foreign_key")
diff --git a/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/database/table/constraints/primary/PrimaryKeyDto.java b/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/database/table/constraints/primary/PrimaryKeyDto.java
index 86d1d49960..59117a5795 100644
--- a/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/database/table/constraints/primary/PrimaryKeyDto.java
+++ b/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/database/table/constraints/primary/PrimaryKeyDto.java
@@ -7,6 +7,8 @@ import jakarta.validation.constraints.NotNull;
 import lombok.*;
 import lombok.extern.jackson.Jacksonized;
 
+import java.util.UUID;
+
 @Getter
 @Setter
 @Builder
@@ -16,8 +18,8 @@ import lombok.extern.jackson.Jacksonized;
 @ToString
 public class PrimaryKeyDto {
 
-    @Schema(example = "8")
-    private Long id;
+    @Schema(example = "d984f9d7-e8a7-4b81-b59a-862db1871f18")
+    private UUID id;
 
     @NotNull
     private TableBriefDto table;
diff --git a/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/database/table/constraints/unique/UniqueDto.java b/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/database/table/constraints/unique/UniqueDto.java
index 755f3a31b7..64db6dfde0 100644
--- a/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/database/table/constraints/unique/UniqueDto.java
+++ b/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/database/table/constraints/unique/UniqueDto.java
@@ -8,6 +8,7 @@ import lombok.*;
 import lombok.extern.jackson.Jacksonized;
 
 import java.util.List;
+import java.util.UUID;
 
 @Getter
 @Setter
@@ -19,8 +20,8 @@ import java.util.List;
 public class UniqueDto {
 
     @NotNull
-    @Schema(example = "5")
-    private Long id;
+    @Schema(example = "d984f9d7-e8a7-4b81-b59a-862db1871f13")
+    private UUID id;
 
     @NotNull
     @Schema(example = "uk_name")
diff --git a/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/identifier/CreateIdentifierDto.java b/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/identifier/CreateIdentifierDto.java
index db55272383..5f2e73fc07 100644
--- a/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/identifier/CreateIdentifierDto.java
+++ b/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/identifier/CreateIdentifierDto.java
@@ -11,6 +11,7 @@ import lombok.*;
 import lombok.extern.jackson.Jacksonized;
 
 import java.util.List;
+import java.util.UUID;
 
 @Getter
 @Setter
@@ -23,20 +24,20 @@ public class CreateIdentifierDto {
 
     @NotNull
     @JsonProperty("database_id")
-    @Schema(example = "1")
-    private Long databaseId;
+    @Schema(example = "d002e8d5-8db4-4ff7-ab3a-bc3f52d9ec44")
+    private UUID databaseId;
 
     @JsonProperty("query_id")
     @Schema(example = "null")
-    private Long queryId;
+    private UUID queryId;
 
     @JsonProperty("view_id")
     @Schema(example = "null")
-    private Long viewId;
+    private UUID viewId;
 
     @JsonProperty("table_id")
     @Schema(example = "null")
-    private Long tableId;
+    private UUID tableId;
 
     @NotNull
     @Schema(example = "database")
diff --git a/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/identifier/CreatorBriefDto.java b/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/identifier/CreatorBriefDto.java
index 8265a1106b..95b0d588f7 100644
--- a/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/identifier/CreatorBriefDto.java
+++ b/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/identifier/CreatorBriefDto.java
@@ -7,6 +7,8 @@ import jakarta.validation.constraints.NotNull;
 import lombok.*;
 import lombok.extern.jackson.Jacksonized;
 
+import java.util.UUID;
+
 
 @Getter
 @Setter
@@ -19,8 +21,8 @@ import lombok.extern.jackson.Jacksonized;
 public class CreatorBriefDto {
 
     @NotNull
-    @Schema(example = "11")
-    private Long id;
+    @Schema(example = "e41f94a6-2b94-4a12-ac0e-678684e1c070")
+    private UUID id;
 
     @NotBlank
     @JsonProperty("creator_name")
diff --git a/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/identifier/CreatorDto.java b/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/identifier/CreatorDto.java
index a3a2976901..1382baec51 100644
--- a/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/identifier/CreatorDto.java
+++ b/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/identifier/CreatorDto.java
@@ -9,6 +9,8 @@ import jakarta.validation.constraints.NotNull;
 import lombok.extern.jackson.Jacksonized;
 import org.springframework.data.annotation.Id;
 
+import java.util.UUID;
+
 
 @Getter
 @Setter
@@ -21,8 +23,8 @@ import org.springframework.data.annotation.Id;
 public class CreatorDto {
 
     @NotNull
-    @Schema(example = "11")
-    private Long id;
+    @Schema(example = "e41f94a6-2b94-4a12-ac0e-678684e1c070")
+    private UUID id;
 
     @Schema(example = "Josiah")
     private String firstname;
diff --git a/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/identifier/IdentifierBriefDto.java b/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/identifier/IdentifierBriefDto.java
index f94edc2cf7..43e32b8ae0 100644
--- a/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/identifier/IdentifierBriefDto.java
+++ b/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/identifier/IdentifierBriefDto.java
@@ -20,25 +20,25 @@ import java.util.UUID;
 public class IdentifierBriefDto {
 
     @NotNull
-    @Schema(example = "2")
-    private Long id;
+    @Schema(example = "b97cd56b-66ca-4354-9e6c-f47210cfaaec")
+    private UUID id;
 
     @NotNull
     @JsonProperty("database_id")
     @Schema(example = "1")
-    private Long databaseId;
+    private UUID databaseId;
 
     @JsonProperty("query_id")
     @Schema(example = "1")
-    private Long queryId;
+    private UUID queryId;
 
     @JsonProperty("table_id")
     @Schema(example = "1")
-    private Long tableId;
+    private UUID tableId;
 
     @JsonProperty("view_id")
     @Schema(example = "1")
-    private Long viewId;
+    private UUID viewId;
 
     @NotNull
     @Schema(example = "database")
diff --git a/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/identifier/IdentifierDescriptionDto.java b/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/identifier/IdentifierDescriptionDto.java
index fbcbb3afe7..32ff2455cc 100644
--- a/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/identifier/IdentifierDescriptionDto.java
+++ b/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/identifier/IdentifierDescriptionDto.java
@@ -8,6 +8,8 @@ import lombok.*;
 import lombok.extern.jackson.Jacksonized;
 import org.springframework.data.annotation.Id;
 
+import java.util.UUID;
+
 @Getter
 @Setter
 @Builder
@@ -19,8 +21,8 @@ import org.springframework.data.annotation.Id;
 public class IdentifierDescriptionDto {
 
     @NotNull
-    @Schema(example = "3")
-    private Long id;
+    @Schema(example = "e0e9692c-910b-4b60-b53a-fc7c358a917d")
+    private UUID id;
 
     @Schema(example = "Air quality reports at Stephansplatz, Vienna")
     private String description;
diff --git a/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/identifier/IdentifierDto.java b/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/identifier/IdentifierDto.java
index 53d40ecd78..57ecb5ad62 100644
--- a/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/identifier/IdentifierDto.java
+++ b/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/identifier/IdentifierDto.java
@@ -13,6 +13,7 @@ import lombok.extern.jackson.Jacksonized;
 
 import java.time.Instant;
 import java.util.List;
+import java.util.UUID;
 
 @Getter
 @Setter
@@ -25,25 +26,25 @@ import java.util.List;
 public class IdentifierDto {
 
     @NotNull
-    @Schema(example = "2")
-    private Long id;
+    @Schema(example = "b97cd56b-66ca-4354-9e6c-f47210cfaaec")
+    private UUID id;
 
     @NotNull
     @JsonProperty("database_id")
-    @Schema(example = "1")
-    private Long databaseId;
+    @Schema(example = "null")
+    private UUID databaseId;
 
     @JsonProperty("query_id")
-    @Schema(example = "1")
-    private Long queryId;
+    @Schema(example = "null")
+    private UUID queryId;
 
     @JsonProperty("table_id")
-    @Schema(example = "1")
-    private Long tableId;
+    @Schema(example = "null")
+    private UUID tableId;
 
     @JsonProperty("view_id")
-    @Schema(example = "1")
-    private Long viewId;
+    @Schema(example = "null")
+    private UUID viewId;
 
     @NotNull
     @Schema(example = "database")
diff --git a/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/identifier/IdentifierFunderDto.java b/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/identifier/IdentifierFunderDto.java
index 93084d2d17..4184f2cf2a 100644
--- a/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/identifier/IdentifierFunderDto.java
+++ b/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/identifier/IdentifierFunderDto.java
@@ -8,6 +8,8 @@ import lombok.*;
 import lombok.extern.jackson.Jacksonized;
 import org.springframework.data.annotation.Id;
 
+import java.util.UUID;
+
 @Getter
 @Setter
 @Builder
@@ -19,8 +21,8 @@ import org.springframework.data.annotation.Id;
 public class IdentifierFunderDto {
 
     @NotNull
-    @Schema(example = "2")
-    private Long id;
+    @Schema(example = "39693413-e0ce-46da-ad5e-029c0556d439")
+    private UUID id;
 
     @NotBlank
     @JsonProperty("funder_name")
diff --git a/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/identifier/IdentifierSaveDto.java b/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/identifier/IdentifierSaveDto.java
index ed4d445de0..f63c3ae79c 100644
--- a/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/identifier/IdentifierSaveDto.java
+++ b/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/identifier/IdentifierSaveDto.java
@@ -11,6 +11,7 @@ import lombok.*;
 import lombok.extern.jackson.Jacksonized;
 
 import java.util.List;
+import java.util.UUID;
 
 @Getter
 @Setter
@@ -22,25 +23,25 @@ import java.util.List;
 public class IdentifierSaveDto {
 
     @NotNull
-    @Schema(example = "1")
-    private Long id;
+    @Schema(example = "68e11675-1e0f-4d24-a6d9-887ad1c4445d")
+    private UUID id;
 
     @NotNull
     @JsonProperty("database_id")
-    @Schema(example = "1")
-    private Long databaseId;
+    @Schema(example = "null")
+    private UUID databaseId;
 
     @JsonProperty("query_id")
     @Schema(example = "null")
-    private Long queryId;
+    private UUID queryId;
 
     @JsonProperty("view_id")
     @Schema(example = "null")
-    private Long viewId;
+    private UUID viewId;
 
     @JsonProperty("table_id")
     @Schema(example = "null")
-    private Long tableId;
+    private UUID tableId;
 
     @NotNull
     @Schema(example = "database")
diff --git a/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/identifier/IdentifierTitleDto.java b/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/identifier/IdentifierTitleDto.java
index 27e3b323ea..d995527d88 100644
--- a/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/identifier/IdentifierTitleDto.java
+++ b/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/identifier/IdentifierTitleDto.java
@@ -8,6 +8,8 @@ import lombok.*;
 import lombok.extern.jackson.Jacksonized;
 import org.springframework.data.annotation.Id;
 
+import java.util.UUID;
+
 @Getter
 @Setter
 @Builder
@@ -19,8 +21,8 @@ import org.springframework.data.annotation.Id;
 public class IdentifierTitleDto {
 
     @NotNull
-    @Schema(example = "4")
-    private Long id;
+    @Schema(example = "70ce5164-fd74-413f-8712-f996b91defbf")
+    private UUID id;
 
     @Schema(example = "Airquality Demonstrator")
     private String title;
diff --git a/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/identifier/RelatedIdentifierDto.java b/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/identifier/RelatedIdentifierDto.java
index 6ff5d9aed1..7205bc6e0b 100644
--- a/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/identifier/RelatedIdentifierDto.java
+++ b/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/identifier/RelatedIdentifierDto.java
@@ -12,6 +12,7 @@ import lombok.extern.jackson.Jacksonized;
 import org.springframework.data.annotation.Id;
 
 import java.time.Instant;
+import java.util.UUID;
 
 @Getter
 @Setter
@@ -24,8 +25,8 @@ import java.time.Instant;
 public class RelatedIdentifierDto {
 
     @NotNull
-    @Schema(example = "8")
-    private Long id;
+    @Schema(example = "ce9d11f0-60a2-448d-a3e4-44719a443e8a")
+    private UUID id;
 
     @NotNull
     @Schema(example = "10.70124/dc4zh-9ce78")
diff --git a/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/identifier/SaveIdentifierCreatorDto.java b/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/identifier/SaveIdentifierCreatorDto.java
index c87ff81d3c..0866a5cb3b 100644
--- a/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/identifier/SaveIdentifierCreatorDto.java
+++ b/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/identifier/SaveIdentifierCreatorDto.java
@@ -8,6 +8,8 @@ import lombok.*;
 import jakarta.validation.constraints.NotBlank;
 import lombok.extern.jackson.Jacksonized;
 
+import java.util.UUID;
+
 @Getter
 @Setter
 @Builder
@@ -18,8 +20,8 @@ import lombok.extern.jackson.Jacksonized;
 public class SaveIdentifierCreatorDto {
 
     @NotNull
-    @Schema(example = "1")
-    private Long id;
+    @Schema(example = "da9dd034-00a8-4517-b93d-d1b2adfee418")
+    private UUID id;
 
     @Schema(example = "Josiah")
     private String firstname;
diff --git a/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/identifier/SaveIdentifierDescriptionDto.java b/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/identifier/SaveIdentifierDescriptionDto.java
index 1d251db634..bc1ad4f3df 100644
--- a/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/identifier/SaveIdentifierDescriptionDto.java
+++ b/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/identifier/SaveIdentifierDescriptionDto.java
@@ -8,6 +8,8 @@ import jakarta.validation.constraints.NotNull;
 import lombok.*;
 import lombok.extern.jackson.Jacksonized;
 
+import java.util.UUID;
+
 @Getter
 @Setter
 @Builder
@@ -18,8 +20,8 @@ import lombok.extern.jackson.Jacksonized;
 public class SaveIdentifierDescriptionDto {
 
     @NotNull
-    @Schema(example = "1")
-    private Long id;
+    @Schema(example = "35bd84d8-b181-43c8-b786-4d024e4f843c")
+    private UUID id;
 
     @NotBlank
     @Schema(example = "Air quality reports at Stephansplatz, Vienna")
diff --git a/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/identifier/SaveIdentifierFunderDto.java b/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/identifier/SaveIdentifierFunderDto.java
index 89bea57a1c..1709c109b2 100644
--- a/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/identifier/SaveIdentifierFunderDto.java
+++ b/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/identifier/SaveIdentifierFunderDto.java
@@ -7,6 +7,8 @@ import jakarta.validation.constraints.NotNull;
 import lombok.*;
 import lombok.extern.jackson.Jacksonized;
 
+import java.util.UUID;
+
 @Getter
 @Setter
 @Builder
@@ -17,8 +19,8 @@ import lombok.extern.jackson.Jacksonized;
 public class SaveIdentifierFunderDto {
 
     @NotNull
-    @Schema(example = "1")
-    private Long id;
+    @Schema(example = "1c6b9212-a315-44b9-946c-3682a7a0e517")
+    private UUID id;
 
     @NotBlank
     @JsonProperty("funder_name")
diff --git a/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/identifier/SaveIdentifierTitleDto.java b/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/identifier/SaveIdentifierTitleDto.java
index 0832a77cee..07ebc35e2c 100644
--- a/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/identifier/SaveIdentifierTitleDto.java
+++ b/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/identifier/SaveIdentifierTitleDto.java
@@ -8,6 +8,8 @@ import jakarta.validation.constraints.NotNull;
 import lombok.*;
 import lombok.extern.jackson.Jacksonized;
 
+import java.util.UUID;
+
 @Getter
 @Setter
 @Builder
@@ -18,8 +20,8 @@ import lombok.extern.jackson.Jacksonized;
 public class SaveIdentifierTitleDto {
 
     @NotNull
-    @Schema(example = "1")
-    private Long id;
+    @Schema(example = "2af9f40e-eaf5-4ea1-861a-1a696587bf29")
+    private UUID id;
 
     @NotBlank
     @Schema(example = "Airquality Demonstrator")
diff --git a/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/identifier/SaveRelatedIdentifierDto.java b/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/identifier/SaveRelatedIdentifierDto.java
index b3a95eee06..d22c8216e3 100644
--- a/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/identifier/SaveRelatedIdentifierDto.java
+++ b/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/identifier/SaveRelatedIdentifierDto.java
@@ -6,6 +6,8 @@ import lombok.extern.jackson.Jacksonized;
 
 import jakarta.validation.constraints.NotNull;
 
+import java.util.UUID;
+
 @Getter
 @Setter
 @Builder
@@ -16,8 +18,8 @@ import jakarta.validation.constraints.NotNull;
 public class SaveRelatedIdentifierDto {
 
     @NotNull
-    @Schema(example = "1")
-    private Long id;
+    @Schema(example = "5bb272c7-7421-4f74-83ac-0486812d0f44")
+    private UUID id;
 
     @NotNull
     @Schema(example = "10.70124/dc4zh-9ce78")
diff --git a/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/maintenance/BannerMessageDto.java b/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/maintenance/BannerMessageDto.java
index e9c15c212e..d344ccd6b4 100644
--- a/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/maintenance/BannerMessageDto.java
+++ b/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/maintenance/BannerMessageDto.java
@@ -9,6 +9,7 @@ import lombok.*;
 import lombok.extern.jackson.Jacksonized;
 
 import java.time.Instant;
+import java.util.UUID;
 
 @Getter
 @Setter
@@ -21,9 +22,11 @@ import java.time.Instant;
 public class BannerMessageDto {
 
     @NotNull
-    private Long id;
+    @Schema(example = "ae3f795b-a3da-4ebe-bdc4-21a8ce631e6f")
+    private UUID id;
 
     @NotNull
+    @Schema(example = "WARNING")
     private BannerMessageTypeDto type;
 
     @NotBlank
diff --git a/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/semantics/OntologyBriefDto.java b/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/semantics/OntologyBriefDto.java
index b908b6e09e..29d5116a70 100644
--- a/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/semantics/OntologyBriefDto.java
+++ b/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/semantics/OntologyBriefDto.java
@@ -7,6 +7,8 @@ import jakarta.validation.constraints.NotNull;
 import lombok.*;
 import lombok.extern.jackson.Jacksonized;
 
+import java.util.UUID;
+
 @Getter
 @Setter
 @Builder
@@ -18,7 +20,8 @@ import lombok.extern.jackson.Jacksonized;
 public class OntologyBriefDto {
 
     @NotNull
-    private Long id;
+    @Schema(example = "7c491e40-082a-47b8-b82c-51d03c520466")
+    private UUID id;
 
     @NotBlank
     @Schema(example = "http://www.wikidata.org/")
diff --git a/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/semantics/OntologyDto.java b/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/semantics/OntologyDto.java
index 686cd9f030..a3e7c46d01 100644
--- a/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/semantics/OntologyDto.java
+++ b/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/semantics/OntologyDto.java
@@ -10,6 +10,7 @@ import lombok.*;
 import lombok.extern.jackson.Jacksonized;
 
 import java.time.Instant;
+import java.util.UUID;
 
 @Getter
 @Setter
@@ -22,7 +23,8 @@ import java.time.Instant;
 public class OntologyDto {
 
     @NotNull
-    private Long id;
+    @Schema(example = "7c491e40-082a-47b8-b82c-51d03c520466")
+    private UUID id;
 
     @NotBlank
     @Schema(example = "http://www.wikidata.org/")
diff --git a/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/semantics/TableColumnEntityDto.java b/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/semantics/TableColumnEntityDto.java
index 79ea8d6a5a..f4a2147a29 100644
--- a/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/semantics/TableColumnEntityDto.java
+++ b/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/semantics/TableColumnEntityDto.java
@@ -7,6 +7,8 @@ import jakarta.validation.constraints.NotNull;
 import lombok.*;
 import lombok.extern.jackson.Jacksonized;
 
+import java.util.UUID;
+
 @Getter
 @Setter
 @Builder
@@ -19,18 +21,18 @@ public class TableColumnEntityDto {
 
     @NotNull
     @JsonProperty("database_id")
-    @Schema(example = "1")
-    private Long databaseId;
+    @Schema(example = "475b4107-a64d-4495-a7ef-3cb0dadd4804")
+    private UUID databaseId;
 
     @NotNull
     @JsonProperty("table_id")
-    @Schema(example = "1")
-    private Long tableId;
+    @Schema(example = "9a9208af-90ea-4382-9a11-0c8f6d89bd1f")
+    private UUID tableId;
 
     @NotNull
     @JsonProperty("column_id")
-    @Schema(example = "1")
-    private Long columnId;
+    @Schema(example = "297860e3-3b29-451c-ae8a-a85ed5941018")
+    private UUID columnId;
 
     @NotBlank
     @Schema(example = "https://www.wikidata.org/entity/Q1686799")
diff --git a/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/container/Container.java b/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/container/Container.java
index a2fb1264cc..cd934942a4 100644
--- a/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/container/Container.java
+++ b/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/container/Container.java
@@ -5,12 +5,14 @@ import at.tuwien.entities.database.Database;
 import com.fasterxml.jackson.annotation.JsonFormat;
 import jakarta.persistence.*;
 import lombok.*;
+import org.hibernate.annotations.JdbcTypeCode;
 import org.springframework.data.annotation.CreatedDate;
 import org.springframework.data.annotation.LastModifiedDate;
 import org.springframework.data.jpa.domain.support.AuditingEntityListener;
 
 import java.time.Instant;
 import java.util.List;
+import java.util.UUID;
 
 import static jakarta.persistence.GenerationType.IDENTITY;
 
@@ -26,9 +28,9 @@ import static jakarta.persistence.GenerationType.IDENTITY;
 public class Container {
 
     @Id
-    @GeneratedValue(strategy = IDENTITY)
-    @Column(updatable = false, nullable = false)
-    private Long id;
+    @JdbcTypeCode(java.sql.Types.VARCHAR)
+    @Column(nullable = false, updatable = false, columnDefinition = "VARCHAR(36)")
+    private UUID id;
 
     @Column(nullable = false)
     private String name;
diff --git a/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/container/image/ContainerImage.java b/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/container/image/ContainerImage.java
index 7e04ce2086..9c3ab4d025 100644
--- a/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/container/image/ContainerImage.java
+++ b/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/container/image/ContainerImage.java
@@ -4,12 +4,14 @@ import at.tuwien.entities.container.Container;
 import com.fasterxml.jackson.annotation.JsonFormat;
 import jakarta.persistence.*;
 import lombok.*;
+import org.hibernate.annotations.JdbcTypeCode;
 import org.springframework.data.annotation.CreatedDate;
 import org.springframework.data.annotation.LastModifiedDate;
 import org.springframework.data.jpa.domain.support.AuditingEntityListener;
 
 import java.time.Instant;
 import java.util.List;
+import java.util.UUID;
 
 import static jakarta.persistence.GenerationType.IDENTITY;
 
@@ -28,9 +30,9 @@ import static jakarta.persistence.GenerationType.IDENTITY;
 public class ContainerImage {
 
     @Id
-    @GeneratedValue(strategy = IDENTITY)
-    @Column(updatable = false, nullable = false)
-    public Long id;
+    @JdbcTypeCode(java.sql.Types.VARCHAR)
+    @Column(nullable = false, updatable = false, columnDefinition = "VARCHAR(36)")
+    private UUID id;
 
     @Column(nullable = false)
     private String name;
diff --git a/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/container/image/DataType.java b/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/container/image/DataType.java
index 5f4ddbfb8c..a50589a520 100644
--- a/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/container/image/DataType.java
+++ b/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/container/image/DataType.java
@@ -2,8 +2,11 @@ package at.tuwien.entities.container.image;
 
 import jakarta.persistence.*;
 import lombok.*;
+import org.hibernate.annotations.JdbcTypeCode;
 import org.springframework.data.jpa.domain.support.AuditingEntityListener;
 
+import java.util.UUID;
+
 import static jakarta.persistence.GenerationType.IDENTITY;
 
 @Data
@@ -18,9 +21,9 @@ import static jakarta.persistence.GenerationType.IDENTITY;
 public class DataType {
 
     @Id
-    @GeneratedValue(strategy = IDENTITY)
-    @Column(updatable = false, nullable = false)
-    public Long id;
+    @JdbcTypeCode(java.sql.Types.VARCHAR)
+    @Column(nullable = false, updatable = false, columnDefinition = "VARCHAR(36)")
+    private UUID id;
 
     @Column(name = "display_name", nullable = false)
     private String displayName;
diff --git a/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/container/image/Operator.java b/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/container/image/Operator.java
index 1ecedc5e16..fe08717aa1 100644
--- a/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/container/image/Operator.java
+++ b/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/container/image/Operator.java
@@ -2,9 +2,10 @@ package at.tuwien.entities.container.image;
 
 import jakarta.persistence.*;
 import lombok.*;
+import org.hibernate.annotations.JdbcTypeCode;
 import org.springframework.data.jpa.domain.support.AuditingEntityListener;
 
-import static jakarta.persistence.GenerationType.IDENTITY;
+import java.util.UUID;
 
 @Data
 @Entity
@@ -18,9 +19,9 @@ import static jakarta.persistence.GenerationType.IDENTITY;
 public class Operator {
 
     @Id
-    @GeneratedValue(strategy = IDENTITY)
-    @Column(updatable = false, nullable = false)
-    public Long id;
+    @JdbcTypeCode(java.sql.Types.VARCHAR)
+    @Column(nullable = false, updatable = false, columnDefinition = "VARCHAR(36)")
+    private UUID id;
 
     @Column(name = "display_name", nullable = false)
     private String displayName;
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 d90a702db3..f96fc6c2e9 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
@@ -42,9 +42,9 @@ import static jakarta.persistence.GenerationType.IDENTITY;
 public class Database implements Serializable {
 
     @Id
-    @GeneratedValue(strategy = IDENTITY)
-    @Column(updatable = false, nullable = false)
-    private Long id;
+    @JdbcTypeCode(java.sql.Types.VARCHAR)
+    @Column(nullable = false, updatable = false, columnDefinition = "VARCHAR(36)")
+    private UUID id;
 
     @JdbcTypeCode(java.sql.Types.VARCHAR)
     @Column(name = "owned_by", columnDefinition = "VARCHAR(36)")
@@ -56,8 +56,8 @@ public class Database implements Serializable {
     })
     private User owner;
 
-    @Column(nullable = false)
-    private Long cid;
+    @Column(nullable = false, columnDefinition = "VARCHAR(36)")
+    private UUID cid;
 
     @ToString.Exclude
     @ManyToOne(fetch = FetchType.LAZY, cascade = CascadeType.MERGE)
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 6a2622be3e..e5f7dd3012 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
@@ -42,8 +42,9 @@ public class DatabaseAccess {
     private User user;
 
     @Id
-    @Column(name = "database_id", updatable = false)
-    private Long hdbid;
+    @JdbcTypeCode(java.sql.Types.VARCHAR)
+    @Column(name = "database_id", nullable = false, columnDefinition = "VARCHAR(36)")
+    private UUID hdbid;
 
     @ToString.Exclude
     @EqualsAndHashCode.Exclude
diff --git a/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/database/DatabaseAccessKey.java b/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/database/DatabaseAccessKey.java
index 8380606852..b6963c290c 100644
--- a/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/database/DatabaseAccessKey.java
+++ b/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/database/DatabaseAccessKey.java
@@ -10,5 +10,5 @@ public class DatabaseAccessKey implements Serializable {
 
     private UUID huserid;
 
-    private Long hdbid;
+    private UUID hdbid;
 }
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 67e6d6d18a..6ec503b996 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
@@ -17,8 +17,6 @@ import java.time.Instant;
 import java.util.List;
 import java.util.UUID;
 
-import static jakarta.persistence.GenerationType.IDENTITY;
-
 @Data
 @Entity
 @Builder
@@ -37,13 +35,12 @@ import static jakarta.persistence.GenerationType.IDENTITY;
 public class View {
 
     @Id
-    @org.springframework.data.annotation.Id
-    @GeneratedValue(strategy = IDENTITY)
-    @Column(updatable = false, nullable = false)
-    private Long id;
+    @JdbcTypeCode(java.sql.Types.VARCHAR)
+    @Column(nullable = false, updatable = false, columnDefinition = "VARCHAR(36)")
+    private UUID id;
 
-    @Column(updatable = false, nullable = false)
-    private Long vdbid;
+    @Column(nullable = false, updatable = false, columnDefinition = "VARCHAR(36)")
+    private UUID vdbid;
 
     @ToString.Exclude
     @JdbcTypeCode(java.sql.Types.VARCHAR)
diff --git a/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/database/ViewColumn.java b/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/database/ViewColumn.java
index 7ef6e8b9d6..f021cca214 100644
--- a/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/database/ViewColumn.java
+++ b/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/database/ViewColumn.java
@@ -3,8 +3,11 @@ package at.tuwien.entities.database;
 import at.tuwien.entities.database.table.columns.TableColumnType;
 import jakarta.persistence.*;
 import lombok.*;
+import org.hibernate.annotations.JdbcTypeCode;
 import org.springframework.data.jpa.domain.support.AuditingEntityListener;
 
+import java.util.UUID;
+
 import static jakarta.persistence.GenerationType.IDENTITY;
 
 @Data
@@ -21,9 +24,9 @@ import static jakarta.persistence.GenerationType.IDENTITY;
 public class ViewColumn implements Comparable<ViewColumn> {
 
     @Id
-    @GeneratedValue(strategy = IDENTITY)
-    @Column(updatable = false, nullable = false)
-    private Long id;
+    @JdbcTypeCode(java.sql.Types.VARCHAR)
+    @Column(nullable = false, updatable = false, columnDefinition = "VARCHAR(36)")
+    private UUID id;
 
     @ToString.Exclude
     @EqualsAndHashCode.Exclude
diff --git a/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/database/table/Table.java b/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/database/table/Table.java
index 3cdb01d7d3..31587c1ea9 100644
--- a/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/database/table/Table.java
+++ b/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/database/table/Table.java
@@ -38,12 +38,12 @@ import static jakarta.persistence.GenerationType.IDENTITY;
 public class Table {
 
     @Id
-    @GeneratedValue(strategy = IDENTITY)
-    @Column(name = "ID", updatable = false, nullable = false)
-    private Long id;
+    @JdbcTypeCode(java.sql.Types.VARCHAR)
+    @Column(nullable = false, updatable = false, columnDefinition = "VARCHAR(36)")
+    private UUID id;
 
     @Column(updatable = false, nullable = false)
-    private Long tdbid;
+    private UUID tdbid;
 
     @JdbcTypeCode(java.sql.Types.VARCHAR)
     @Column(name = "owned_by", columnDefinition = "VARCHAR(36)")
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 9f4c4e0606..e0cf96bd33 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
@@ -4,6 +4,7 @@ import at.tuwien.entities.database.table.Table;
 import com.fasterxml.jackson.annotation.JsonFormat;
 import jakarta.persistence.*;
 import lombok.*;
+import org.hibernate.annotations.JdbcTypeCode;
 import org.springframework.data.annotation.CreatedDate;
 import org.springframework.data.annotation.LastModifiedDate;
 import org.springframework.data.jpa.domain.support.AuditingEntityListener;
@@ -11,6 +12,7 @@ import org.springframework.data.jpa.domain.support.AuditingEntityListener;
 import java.math.BigDecimal;
 import java.time.Instant;
 import java.util.List;
+import java.util.UUID;
 
 import static jakarta.persistence.GenerationType.IDENTITY;
 
@@ -31,9 +33,9 @@ import static jakarta.persistence.GenerationType.IDENTITY;
 public class TableColumn implements Comparable<TableColumn> {
 
     @Id
-    @GeneratedValue(strategy = IDENTITY)
-    @Column(updatable = false, nullable = false)
-    private Long id;
+    @JdbcTypeCode(java.sql.Types.VARCHAR)
+    @Column(nullable = false, updatable = false, columnDefinition = "VARCHAR(36)")
+    private UUID id;
 
     @ToString.Exclude
     @EqualsAndHashCode.Exclude
diff --git a/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/database/table/columns/TableColumnConcept.java b/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/database/table/columns/TableColumnConcept.java
index 5a9e8292be..2339ba44ea 100644
--- a/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/database/table/columns/TableColumnConcept.java
+++ b/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/database/table/columns/TableColumnConcept.java
@@ -3,11 +3,13 @@ package at.tuwien.entities.database.table.columns;
 import com.fasterxml.jackson.annotation.JsonFormat;
 import jakarta.persistence.*;
 import lombok.*;
+import org.hibernate.annotations.JdbcTypeCode;
 import org.springframework.data.annotation.CreatedDate;
 import org.springframework.data.jpa.domain.support.AuditingEntityListener;
 
 import java.time.Instant;
 import java.util.List;
+import java.util.UUID;
 
 import static jakarta.persistence.GenerationType.IDENTITY;
 
@@ -29,9 +31,9 @@ import static jakarta.persistence.GenerationType.IDENTITY;
 public class TableColumnConcept {
 
     @Id
-    @GeneratedValue(strategy = IDENTITY)
-    @Column(updatable = false, nullable = false)
-    private Long id;
+    @JdbcTypeCode(java.sql.Types.VARCHAR)
+    @Column(nullable = false, updatable = false, columnDefinition = "VARCHAR(36)")
+    private UUID id;
 
     @Column(updatable = false, nullable = false, columnDefinition = "TEXT")
     private String uri;
diff --git a/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/database/table/columns/TableColumnUnit.java b/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/database/table/columns/TableColumnUnit.java
index 7e8fe915b3..55c1fbd23e 100644
--- a/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/database/table/columns/TableColumnUnit.java
+++ b/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/database/table/columns/TableColumnUnit.java
@@ -3,11 +3,13 @@ package at.tuwien.entities.database.table.columns;
 import com.fasterxml.jackson.annotation.JsonFormat;
 import jakarta.persistence.*;
 import lombok.*;
+import org.hibernate.annotations.JdbcTypeCode;
 import org.springframework.data.annotation.CreatedDate;
 import org.springframework.data.jpa.domain.support.AuditingEntityListener;
 
 import java.time.Instant;
 import java.util.List;
+import java.util.UUID;
 
 import static jakarta.persistence.GenerationType.IDENTITY;
 
@@ -29,9 +31,9 @@ import static jakarta.persistence.GenerationType.IDENTITY;
 public class TableColumnUnit {
 
     @Id
-    @GeneratedValue(strategy = IDENTITY)
-    @Column(updatable = false, nullable = false)
-    private Long id;
+    @JdbcTypeCode(java.sql.Types.VARCHAR)
+    @Column(nullable = false, updatable = false, columnDefinition = "VARCHAR(36)")
+    private UUID id;
 
     @Column(updatable = false, nullable = false, columnDefinition = "TEXT")
     private String uri;
diff --git a/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/database/table/constraints/foreignKey/ForeignKey.java b/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/database/table/constraints/foreignKey/ForeignKey.java
index 76de9463cf..955a7d5b76 100644
--- a/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/database/table/constraints/foreignKey/ForeignKey.java
+++ b/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/database/table/constraints/foreignKey/ForeignKey.java
@@ -3,11 +3,11 @@ package at.tuwien.entities.database.table.constraints.foreignKey;
 import at.tuwien.entities.database.table.Table;
 import jakarta.persistence.*;
 import lombok.*;
+import org.hibernate.annotations.JdbcTypeCode;
 import org.springframework.data.jpa.domain.support.AuditingEntityListener;
 
 import java.util.List;
-
-import static jakarta.persistence.GenerationType.IDENTITY;
+import java.util.UUID;
 
 @Data
 @Entity
@@ -21,9 +21,9 @@ import static jakarta.persistence.GenerationType.IDENTITY;
 public class ForeignKey {
 
     @Id
-    @GeneratedValue(strategy = IDENTITY)
-    @Column(name = "fkid", updatable = false, nullable = false)
-    private Long id;
+    @JdbcTypeCode(java.sql.Types.VARCHAR)
+    @Column(name = "fkid", nullable = false, columnDefinition = "VARCHAR(36)")
+    private UUID id;
 
     @Column(updatable = false, nullable = false)
     private String name;
diff --git a/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/database/table/constraints/foreignKey/ForeignKeyReference.java b/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/database/table/constraints/foreignKey/ForeignKeyReference.java
index ed2691fc52..94d4d6d46a 100644
--- a/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/database/table/constraints/foreignKey/ForeignKeyReference.java
+++ b/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/database/table/constraints/foreignKey/ForeignKeyReference.java
@@ -3,8 +3,11 @@ package at.tuwien.entities.database.table.constraints.foreignKey;
 import at.tuwien.entities.database.table.columns.TableColumn;
 import jakarta.persistence.*;
 import lombok.*;
+import org.hibernate.annotations.JdbcTypeCode;
 import org.springframework.data.jpa.domain.support.AuditingEntityListener;
 
+import java.util.UUID;
+
 import static jakarta.persistence.GenerationType.IDENTITY;
 
 @Data
@@ -21,9 +24,9 @@ import static jakarta.persistence.GenerationType.IDENTITY;
 public class ForeignKeyReference {
 
     @Id
-    @GeneratedValue(strategy = IDENTITY)
-    @Column(updatable = false, nullable = false)
-    private Long id;
+    @JdbcTypeCode(java.sql.Types.VARCHAR)
+    @Column(nullable = false, updatable = false, columnDefinition = "VARCHAR(36)")
+    private UUID id;
 
     @ToString.Exclude
     @EqualsAndHashCode.Exclude
diff --git a/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/database/table/constraints/primaryKey/PrimaryKey.java b/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/database/table/constraints/primaryKey/PrimaryKey.java
index 407e2fb7f3..9a613ffac6 100644
--- a/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/database/table/constraints/primaryKey/PrimaryKey.java
+++ b/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/database/table/constraints/primaryKey/PrimaryKey.java
@@ -4,9 +4,10 @@ import at.tuwien.entities.database.table.Table;
 import at.tuwien.entities.database.table.columns.TableColumn;
 import jakarta.persistence.*;
 import lombok.*;
+import org.hibernate.annotations.JdbcTypeCode;
 import org.springframework.data.jpa.domain.support.AuditingEntityListener;
 
-import static jakarta.persistence.GenerationType.IDENTITY;
+import java.util.UUID;
 
 @Data
 @Entity
@@ -20,9 +21,9 @@ import static jakarta.persistence.GenerationType.IDENTITY;
 public class PrimaryKey {
 
     @Id
-    @GeneratedValue(strategy = IDENTITY)
-    @Column(name = "pkid", updatable = false, nullable = false)
-    private Long id;
+    @JdbcTypeCode(java.sql.Types.VARCHAR)
+    @Column(name = "pkid", nullable = false, columnDefinition = "VARCHAR(36)")
+    private UUID id;
 
     @ToString.Exclude
     @EqualsAndHashCode.Exclude
diff --git a/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/database/table/constraints/unique/Unique.java b/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/database/table/constraints/unique/Unique.java
index c0dfc46710..7d7b7fdde5 100644
--- a/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/database/table/constraints/unique/Unique.java
+++ b/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/database/table/constraints/unique/Unique.java
@@ -4,11 +4,11 @@ import at.tuwien.entities.database.table.Table;
 import at.tuwien.entities.database.table.columns.TableColumn;
 import jakarta.persistence.*;
 import lombok.*;
+import org.hibernate.annotations.JdbcTypeCode;
 import org.springframework.data.jpa.domain.support.AuditingEntityListener;
 
 import java.util.List;
-
-import static jakarta.persistence.GenerationType.IDENTITY;
+import java.util.UUID;
 
 @Data
 @Entity
@@ -22,9 +22,9 @@ import static jakarta.persistence.GenerationType.IDENTITY;
 public class Unique {
 
     @Id
-    @GeneratedValue(strategy = IDENTITY)
-    @Column(name = "uid", updatable = false, nullable = false)
-    private Long id;
+    @JdbcTypeCode(java.sql.Types.VARCHAR)
+    @Column(name = "uid", nullable = false, columnDefinition = "VARCHAR(36)")
+    private UUID id;
 
     @Column(updatable = false, nullable = false)
     private String name;
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 1b0692ae50..6875a8d32d 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
@@ -2,8 +2,11 @@ package at.tuwien.entities.identifier;
 
 import jakarta.persistence.*;
 import lombok.*;
+import org.hibernate.annotations.JdbcTypeCode;
 import org.springframework.data.jpa.domain.support.AuditingEntityListener;
 
+import java.util.UUID;
+
 import static jakarta.persistence.GenerationType.IDENTITY;
 
 @Data
@@ -18,10 +21,9 @@ import static jakarta.persistence.GenerationType.IDENTITY;
 public class Creator {
 
     @Id
-    @org.springframework.data.annotation.Id
-    @GeneratedValue(strategy = IDENTITY)
-    @Column(updatable = false, nullable = false)
-    private Long id;
+    @JdbcTypeCode(java.sql.Types.VARCHAR)
+    @Column(nullable = false, updatable = false, columnDefinition = "VARCHAR(36)")
+    private UUID id;
 
     @Column(name = "given_names")
     private String firstname;
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 b98a1b8c6b..ce202f8b99 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
@@ -39,18 +39,18 @@ import static jakarta.persistence.GenerationType.IDENTITY;
 public class Identifier implements Serializable {
 
     @Id
-    @GeneratedValue(strategy = IDENTITY)
-    @Column(updatable = false, nullable = false)
-    private Long id;
+    @JdbcTypeCode(java.sql.Types.VARCHAR)
+    @Column(nullable = false, updatable = false, columnDefinition = "VARCHAR(36)")
+    private UUID id;
 
-    @Column(name = "qid")
-    private Long queryId;
+    @Column(name = "qid", columnDefinition = "VARCHAR(36)")
+    private UUID queryId;
 
-    @Column(name = "tid")
-    private Long tableId;
+    @Column(name = "tid", columnDefinition = "VARCHAR(36)")
+    private UUID tableId;
 
-    @Column(name = "vid")
-    private Long viewId;
+    @Column(name = "vid", columnDefinition = "VARCHAR(36)")
+    private UUID viewId;
 
     /**
      * Creators are created/updated/deleted by the Identifier entity.
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 af684d2347..693ede5142 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
@@ -3,9 +3,11 @@ package at.tuwien.entities.identifier;
 import at.tuwien.entities.database.LanguageType;
 import jakarta.persistence.*;
 import lombok.*;
+import org.hibernate.annotations.JdbcTypeCode;
 import org.springframework.data.jpa.domain.support.AuditingEntityListener;
 
 import java.io.Serializable;
+import java.util.UUID;
 
 import static jakarta.persistence.GenerationType.IDENTITY;
 
@@ -21,10 +23,9 @@ import static jakarta.persistence.GenerationType.IDENTITY;
 public class IdentifierDescription implements Serializable {
 
     @Id
-    @org.springframework.data.annotation.Id
-    @GeneratedValue(strategy = IDENTITY)
-    @Column(updatable = false, nullable = false)
-    private Long id;
+    @JdbcTypeCode(java.sql.Types.VARCHAR)
+    @Column(nullable = false, updatable = false, columnDefinition = "VARCHAR(36)")
+    private UUID id;
 
     @Column(nullable = false, columnDefinition = "TEXT")
     private String description;
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 c572022346..ac7632f319 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
@@ -2,9 +2,11 @@ package at.tuwien.entities.identifier;
 
 import jakarta.persistence.*;
 import lombok.*;
+import org.hibernate.annotations.JdbcTypeCode;
 import org.springframework.data.jpa.domain.support.AuditingEntityListener;
 
 import java.io.Serializable;
+import java.util.UUID;
 
 import static jakarta.persistence.GenerationType.IDENTITY;
 
@@ -20,9 +22,9 @@ import static jakarta.persistence.GenerationType.IDENTITY;
 public class IdentifierFunder implements Serializable {
 
     @Id
-    @GeneratedValue(strategy = IDENTITY)
-    @Column(updatable = false, nullable = false)
-    private Long id;
+    @JdbcTypeCode(java.sql.Types.VARCHAR)
+    @Column(nullable = false, updatable = false, columnDefinition = "VARCHAR(36)")
+    private UUID id;
 
     @Column(nullable = false)
     private String funderName;
diff --git a/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/identifier/IdentifierTitle.java b/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/identifier/IdentifierTitle.java
index cecc2c5c98..5f91afb736 100644
--- a/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/identifier/IdentifierTitle.java
+++ b/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/identifier/IdentifierTitle.java
@@ -3,9 +3,11 @@ package at.tuwien.entities.identifier;
 import at.tuwien.entities.database.LanguageType;
 import jakarta.persistence.*;
 import lombok.*;
+import org.hibernate.annotations.JdbcTypeCode;
 import org.springframework.data.jpa.domain.support.AuditingEntityListener;
 
 import java.io.Serializable;
+import java.util.UUID;
 
 import static jakarta.persistence.GenerationType.IDENTITY;
 
@@ -21,9 +23,9 @@ import static jakarta.persistence.GenerationType.IDENTITY;
 public class IdentifierTitle implements Serializable {
 
     @Id
-    @GeneratedValue(strategy = IDENTITY)
-    @Column(updatable = false, nullable = false)
-    private Long id;
+    @JdbcTypeCode(java.sql.Types.VARCHAR)
+    @Column(nullable = false, updatable = false, columnDefinition = "VARCHAR(36)")
+    private UUID id;
 
     @Column(nullable = false, columnDefinition = "TEXT")
     private String title;
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 e8b1acde12..244a0ec28a 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
@@ -2,9 +2,10 @@ package at.tuwien.entities.identifier;
 
 import jakarta.persistence.*;
 import lombok.*;
+import org.hibernate.annotations.JdbcTypeCode;
 import org.springframework.data.jpa.domain.support.AuditingEntityListener;
 
-import static jakarta.persistence.GenerationType.IDENTITY;
+import java.util.UUID;
 
 @Data
 @Entity
@@ -14,15 +15,15 @@ import static jakarta.persistence.GenerationType.IDENTITY;
 @NoArgsConstructor
 @EqualsAndHashCode
 @EntityListeners(AuditingEntityListener.class)
-@Table(name = "mdb_related_identifiers", uniqueConstraints = {
+@Table(name = "mdb_identifier_related", uniqueConstraints = {
         @UniqueConstraint(columnNames = {"id", "pid"})
 })
 public class RelatedIdentifier {
 
     @Id
-    @GeneratedValue(strategy = IDENTITY)
-    @Column(updatable = false, nullable = false)
-    private Long id;
+    @JdbcTypeCode(java.sql.Types.VARCHAR)
+    @Column(nullable = false, updatable = false, columnDefinition = "VARCHAR(36)")
+    private UUID id;
 
     @Column(nullable = false)
     private String value;
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 f22cee71a7..c4f71251da 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
@@ -2,9 +2,11 @@ package at.tuwien.entities.maintenance;
 
 import jakarta.persistence.*;
 import lombok.*;
+import org.hibernate.annotations.JdbcTypeCode;
 import org.springframework.data.jpa.domain.support.AuditingEntityListener;
 
 import java.time.Instant;
+import java.util.UUID;
 
 import static jakarta.persistence.GenerationType.IDENTITY;
 
@@ -16,16 +18,16 @@ import static jakarta.persistence.GenerationType.IDENTITY;
 @NoArgsConstructor
 @EqualsAndHashCode
 @EntityListeners(AuditingEntityListener.class)
-@Table(name = "mdb_banner_messages")
+@Table(name = "mdb_messages")
 @NamedQueries({
         @NamedQuery(name = "BannerMessage.findByActive", query = "select m from BannerMessage m where (m.displayStart = null and m.displayEnd = null) or (m.displayStart = null and m.displayEnd >= NOW()) or (m.displayStart <= NOW() and m.displayEnd >= NOW()) or (m.displayStart <= NOW() and m.displayEnd = null)")
 })
 public class BannerMessage {
 
     @Id
-    @GeneratedValue(strategy = IDENTITY)
-    @Column(updatable = false, nullable = false)
-    private Long id;
+    @JdbcTypeCode(java.sql.Types.VARCHAR)
+    @Column(nullable = false, updatable = false, columnDefinition = "VARCHAR(36)")
+    private UUID id;
 
     @Column(nullable = false, columnDefinition = "ENUM('ERROR','WARNING','INFO')")
     @Enumerated(EnumType.STRING)
diff --git a/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/semantics/Ontology.java b/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/semantics/Ontology.java
index 576aab1e37..46d86f6c1d 100644
--- a/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/semantics/Ontology.java
+++ b/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/semantics/Ontology.java
@@ -2,11 +2,13 @@ package at.tuwien.entities.semantics;
 
 import jakarta.persistence.*;
 import lombok.*;
+import org.hibernate.annotations.JdbcTypeCode;
 import org.springframework.data.annotation.CreatedDate;
 import org.springframework.data.annotation.LastModifiedDate;
 import org.springframework.data.jpa.domain.support.AuditingEntityListener;
 
 import java.time.Instant;
+import java.util.UUID;
 
 import static jakarta.persistence.GenerationType.IDENTITY;
 
@@ -27,9 +29,9 @@ import static jakarta.persistence.GenerationType.IDENTITY;
 public class Ontology {
 
     @Id
-    @GeneratedValue(strategy = IDENTITY)
-    @Column(updatable = false, nullable = false)
-    private Long id;
+    @JdbcTypeCode(java.sql.Types.VARCHAR)
+    @Column(nullable = false, updatable = false, columnDefinition = "VARCHAR(36)")
+    private UUID id;
 
     @Column(nullable = false, unique = true)
     private String uri;
diff --git a/dbrepo-metadata-service/repositories/src/main/java/at/tuwien/repository/BannerMessageRepository.java b/dbrepo-metadata-service/repositories/src/main/java/at/tuwien/repository/BannerMessageRepository.java
index 8d7aee77e7..c12dc7b83f 100644
--- a/dbrepo-metadata-service/repositories/src/main/java/at/tuwien/repository/BannerMessageRepository.java
+++ b/dbrepo-metadata-service/repositories/src/main/java/at/tuwien/repository/BannerMessageRepository.java
@@ -5,9 +5,10 @@ import org.springframework.data.jpa.repository.JpaRepository;
 import org.springframework.stereotype.Repository;
 
 import java.util.List;
+import java.util.UUID;
 
 @Repository
-public interface BannerMessageRepository extends JpaRepository<BannerMessage, Long> {
+public interface BannerMessageRepository extends JpaRepository<BannerMessage, UUID> {
 
     List<BannerMessage> findByActive();
 
diff --git a/dbrepo-metadata-service/repositories/src/main/java/at/tuwien/repository/ConceptRepository.java b/dbrepo-metadata-service/repositories/src/main/java/at/tuwien/repository/ConceptRepository.java
index c77641200c..1e70cfdfb2 100644
--- a/dbrepo-metadata-service/repositories/src/main/java/at/tuwien/repository/ConceptRepository.java
+++ b/dbrepo-metadata-service/repositories/src/main/java/at/tuwien/repository/ConceptRepository.java
@@ -5,9 +5,10 @@ import org.springframework.data.jpa.repository.JpaRepository;
 import org.springframework.stereotype.Repository;
 
 import java.util.Optional;
+import java.util.UUID;
 
 @Repository
-public interface ConceptRepository extends JpaRepository<TableColumnConcept, Long> {
+public interface ConceptRepository extends JpaRepository<TableColumnConcept, UUID> {
 
     Optional<TableColumnConcept> findByUri(String uri);
 
diff --git a/dbrepo-metadata-service/repositories/src/main/java/at/tuwien/repository/ContainerRepository.java b/dbrepo-metadata-service/repositories/src/main/java/at/tuwien/repository/ContainerRepository.java
index 8155aef9cc..536802cf41 100644
--- a/dbrepo-metadata-service/repositories/src/main/java/at/tuwien/repository/ContainerRepository.java
+++ b/dbrepo-metadata-service/repositories/src/main/java/at/tuwien/repository/ContainerRepository.java
@@ -7,9 +7,10 @@ import org.springframework.stereotype.Repository;
 
 import java.util.List;
 import java.util.Optional;
+import java.util.UUID;
 
 @Repository
-public interface ContainerRepository extends JpaRepository<Container, Long> {
+public interface ContainerRepository extends JpaRepository<Container, UUID> {
 
     Optional<Container> findByInternalName(String internalName);
 
diff --git a/dbrepo-metadata-service/repositories/src/main/java/at/tuwien/repository/DatabaseRepository.java b/dbrepo-metadata-service/repositories/src/main/java/at/tuwien/repository/DatabaseRepository.java
index 38a0a80441..67c0df76ee 100644
--- a/dbrepo-metadata-service/repositories/src/main/java/at/tuwien/repository/DatabaseRepository.java
+++ b/dbrepo-metadata-service/repositories/src/main/java/at/tuwien/repository/DatabaseRepository.java
@@ -9,7 +9,7 @@ import java.util.Optional;
 import java.util.UUID;
 
 @Repository
-public interface DatabaseRepository extends JpaRepository<Database, Long> {
+public interface DatabaseRepository extends JpaRepository<Database, UUID> {
 
     List<Database> findAllDesc();
 
diff --git a/dbrepo-metadata-service/repositories/src/main/java/at/tuwien/repository/IdentifierRepository.java b/dbrepo-metadata-service/repositories/src/main/java/at/tuwien/repository/IdentifierRepository.java
index 12b309ec52..9e49f2aa1c 100644
--- a/dbrepo-metadata-service/repositories/src/main/java/at/tuwien/repository/IdentifierRepository.java
+++ b/dbrepo-metadata-service/repositories/src/main/java/at/tuwien/repository/IdentifierRepository.java
@@ -6,9 +6,10 @@ import org.springframework.stereotype.Repository;
 
 import java.util.List;
 import java.util.Optional;
+import java.util.UUID;
 
 @Repository
-public interface IdentifierRepository extends JpaRepository<Identifier, Long> {
+public interface IdentifierRepository extends JpaRepository<Identifier, UUID> {
 
     /**
      * Finds identifiers by given database id.
@@ -16,7 +17,7 @@ public interface IdentifierRepository extends JpaRepository<Identifier, Long> {
      * @param databaseId The database id.
      * @return List of matching identifiers.
      */
-    List<Identifier> findByDatabaseId(Long databaseId);
+    List<Identifier> findByDatabaseId(UUID databaseId);
 
     /**
      * Finds identifiers by given database id and query id.
@@ -25,11 +26,11 @@ public interface IdentifierRepository extends JpaRepository<Identifier, Long> {
      * @param queryId    The query id.
      * @return List of matching identifiers.
      */
-    List<Identifier> findByDatabaseIdAndQueryId(Long databaseId, Long queryId);
+    List<Identifier> findByDatabaseIdAndQueryId(UUID databaseId, UUID queryId);
 
-    List<Identifier> findDatabaseIdentifier(Long databaseId);
+    List<Identifier> findDatabaseIdentifier(UUID databaseId);
 
-    List<Identifier> findSubsetIdentifier(Long databaseId, Long queryId);
+    List<Identifier> findSubsetIdentifier(UUID databaseId, UUID queryId);
 
     List<Identifier> findAllDatabaseIdentifiers();
 
diff --git a/dbrepo-metadata-service/repositories/src/main/java/at/tuwien/repository/ImageRepository.java b/dbrepo-metadata-service/repositories/src/main/java/at/tuwien/repository/ImageRepository.java
index 23fa40c5be..6282ed9040 100644
--- a/dbrepo-metadata-service/repositories/src/main/java/at/tuwien/repository/ImageRepository.java
+++ b/dbrepo-metadata-service/repositories/src/main/java/at/tuwien/repository/ImageRepository.java
@@ -4,11 +4,11 @@ import at.tuwien.entities.container.image.ContainerImage;
 import org.springframework.data.jpa.repository.JpaRepository;
 import org.springframework.stereotype.Repository;
 
-import java.util.List;
 import java.util.Optional;
+import java.util.UUID;
 
 @Repository
-public interface ImageRepository extends JpaRepository<ContainerImage, Long> {
+public interface ImageRepository extends JpaRepository<ContainerImage, UUID> {
 
     Optional<ContainerImage> findByNameAndVersion(String name, String version);
 
diff --git a/dbrepo-metadata-service/repositories/src/main/java/at/tuwien/repository/OntologyRepository.java b/dbrepo-metadata-service/repositories/src/main/java/at/tuwien/repository/OntologyRepository.java
index a7fad56076..69b4e204be 100644
--- a/dbrepo-metadata-service/repositories/src/main/java/at/tuwien/repository/OntologyRepository.java
+++ b/dbrepo-metadata-service/repositories/src/main/java/at/tuwien/repository/OntologyRepository.java
@@ -6,9 +6,10 @@ import org.springframework.stereotype.Repository;
 
 import java.util.List;
 import java.util.Optional;
+import java.util.UUID;
 
 @Repository
-public interface OntologyRepository extends JpaRepository<Ontology, Long> {
+public interface OntologyRepository extends JpaRepository<Ontology, UUID> {
 
     List<Ontology> findAllProcessable();
 
diff --git a/dbrepo-metadata-service/repositories/src/main/java/at/tuwien/repository/TableRepository.java b/dbrepo-metadata-service/repositories/src/main/java/at/tuwien/repository/TableRepository.java
index fda9e78ce5..bc126eaa27 100644
--- a/dbrepo-metadata-service/repositories/src/main/java/at/tuwien/repository/TableRepository.java
+++ b/dbrepo-metadata-service/repositories/src/main/java/at/tuwien/repository/TableRepository.java
@@ -4,10 +4,12 @@ import at.tuwien.entities.database.table.Table;
 import org.springframework.data.jpa.repository.JpaRepository;
 import org.springframework.stereotype.Repository;
 
+import java.util.UUID;
+
 /**
  * TO BE USED READONLY
  */
 @Repository
-public interface TableRepository extends JpaRepository<Table, Long> {
+public interface TableRepository extends JpaRepository<Table, UUID> {
 
 }
diff --git a/dbrepo-metadata-service/repositories/src/main/java/at/tuwien/repository/UnitRepository.java b/dbrepo-metadata-service/repositories/src/main/java/at/tuwien/repository/UnitRepository.java
index 3bcb0c0a49..6676410730 100644
--- a/dbrepo-metadata-service/repositories/src/main/java/at/tuwien/repository/UnitRepository.java
+++ b/dbrepo-metadata-service/repositories/src/main/java/at/tuwien/repository/UnitRepository.java
@@ -5,9 +5,10 @@ import org.springframework.data.jpa.repository.JpaRepository;
 import org.springframework.stereotype.Repository;
 
 import java.util.Optional;
+import java.util.UUID;
 
 @Repository
-public interface UnitRepository extends JpaRepository<TableColumnUnit, Long> {
+public interface UnitRepository extends JpaRepository<TableColumnUnit, UUID> {
 
     Optional<TableColumnUnit> findByUri(String uri);
 
diff --git a/dbrepo-metadata-service/repositories/src/main/java/at/tuwien/repository/ViewRepository.java b/dbrepo-metadata-service/repositories/src/main/java/at/tuwien/repository/ViewRepository.java
index de678d90ae..50544822e5 100644
--- a/dbrepo-metadata-service/repositories/src/main/java/at/tuwien/repository/ViewRepository.java
+++ b/dbrepo-metadata-service/repositories/src/main/java/at/tuwien/repository/ViewRepository.java
@@ -4,10 +4,12 @@ import at.tuwien.entities.database.View;
 import org.springframework.data.jpa.repository.JpaRepository;
 import org.springframework.stereotype.Repository;
 
+import java.util.UUID;
+
 /**
  * TO BE USED READONLY
  */
 @Repository
-public interface ViewRepository extends JpaRepository<View, Long> {
+public interface ViewRepository extends JpaRepository<View, UUID> {
 
 }
diff --git a/dbrepo-metadata-service/rest-service/src/main/java/at/tuwien/endpoints/AccessEndpoint.java b/dbrepo-metadata-service/rest-service/src/main/java/at/tuwien/endpoints/AccessEndpoint.java
index 9c109c87d6..79dc5fd8e9 100644
--- a/dbrepo-metadata-service/rest-service/src/main/java/at/tuwien/endpoints/AccessEndpoint.java
+++ b/dbrepo-metadata-service/rest-service/src/main/java/at/tuwien/endpoints/AccessEndpoint.java
@@ -38,15 +38,15 @@ public class AccessEndpoint extends AbstractEndpoint {
 
     private final UserService userService;
     private final AccessService accessService;
-    private final MetadataMapper databaseMapper;
+    private final MetadataMapper metadataMapper;
     private final DatabaseService databaseService;
 
     @Autowired
-    public AccessEndpoint(UserService userService, AccessService accessService, MetadataMapper databaseMapper,
+    public AccessEndpoint(UserService userService, AccessService accessService, MetadataMapper metadataMapper,
                           DatabaseService databaseService) {
         this.userService = userService;
         this.accessService = accessService;
-        this.databaseMapper = databaseMapper;
+        this.metadataMapper = metadataMapper;
         this.databaseService = databaseService;
     }
 
@@ -89,7 +89,7 @@ public class AccessEndpoint extends AbstractEndpoint {
                             mediaType = "application/json",
                             schema = @Schema(implementation = ApiErrorDto.class))}),
     })
-    public ResponseEntity<DatabaseAccessDto> create(@NotNull @PathVariable("databaseId") Long databaseId,
+    public ResponseEntity<DatabaseAccessDto> create(@NotNull @PathVariable("databaseId") UUID databaseId,
                                                     @PathVariable("userId") UUID userId,
                                                     @Valid @RequestBody CreateAccessDto data,
                                                     @NotNull Principal principal) throws NotAllowedException, DataServiceException,
@@ -151,7 +151,7 @@ public class AccessEndpoint extends AbstractEndpoint {
                             mediaType = "application/json",
                             schema = @Schema(implementation = ApiErrorDto.class))}),
     })
-    public ResponseEntity<Void> update(@NotNull @PathVariable("databaseId") Long databaseId,
+    public ResponseEntity<Void> update(@NotNull @PathVariable("databaseId") UUID databaseId,
                                        @PathVariable("userId") UUID userId,
                                        @Valid @RequestBody CreateAccessDto data,
                                        @NotNull Principal principal) throws NotAllowedException,
@@ -203,7 +203,7 @@ public class AccessEndpoint extends AbstractEndpoint {
                             mediaType = "application/json",
                             schema = @Schema(implementation = ApiErrorDto.class))}),
     })
-    public ResponseEntity<DatabaseAccessDto> find(@NotNull @PathVariable("databaseId") Long databaseId,
+    public ResponseEntity<DatabaseAccessDto> find(@NotNull @PathVariable("databaseId") UUID databaseId,
                                                   @PathVariable("userId") UUID userId,
                                                   @NotNull Principal principal) throws DatabaseNotFoundException,
             UserNotFoundException, AccessNotFoundException, NotAllowedException {
@@ -219,7 +219,7 @@ public class AccessEndpoint extends AbstractEndpoint {
         final Database database = databaseService.findById(databaseId);
         final User user = userService.findById(userId);
         final DatabaseAccess access = accessService.find(database, user);
-        return ResponseEntity.ok(databaseMapper.databaseAccessToDatabaseAccessDto(access));
+        return ResponseEntity.ok(metadataMapper.databaseAccessToDatabaseAccessDto(access));
     }
 
     @DeleteMapping("/{userId}")
@@ -258,7 +258,7 @@ public class AccessEndpoint extends AbstractEndpoint {
                             mediaType = "application/json",
                             schema = @Schema(implementation = ApiErrorDto.class))}),
     })
-    public ResponseEntity<Void> revoke(@NotNull @PathVariable("databaseId") Long databaseId,
+    public ResponseEntity<Void> revoke(@NotNull @PathVariable("databaseId") UUID databaseId,
                                        @PathVariable("userId") UUID userId,
                                        @NotNull Principal principal) throws NotAllowedException, DataServiceException,
             DataServiceConnectionException, DatabaseNotFoundException, UserNotFoundException, AccessNotFoundException,
diff --git a/dbrepo-metadata-service/rest-service/src/main/java/at/tuwien/endpoints/ContainerEndpoint.java b/dbrepo-metadata-service/rest-service/src/main/java/at/tuwien/endpoints/ContainerEndpoint.java
index b5d153318c..dc588c0607 100644
--- a/dbrepo-metadata-service/rest-service/src/main/java/at/tuwien/endpoints/ContainerEndpoint.java
+++ b/dbrepo-metadata-service/rest-service/src/main/java/at/tuwien/endpoints/ContainerEndpoint.java
@@ -1,8 +1,8 @@
 package at.tuwien.endpoints;
 
 import at.tuwien.api.container.ContainerBriefDto;
-import at.tuwien.api.container.CreateContainerDto;
 import at.tuwien.api.container.ContainerDto;
+import at.tuwien.api.container.CreateContainerDto;
 import at.tuwien.api.error.ApiErrorDto;
 import at.tuwien.entities.container.Container;
 import at.tuwien.exception.ContainerAlreadyExistsException;
@@ -31,6 +31,7 @@ import org.springframework.web.bind.annotation.*;
 
 import java.security.Principal;
 import java.util.List;
+import java.util.UUID;
 import java.util.stream.Collectors;
 
 
@@ -129,7 +130,7 @@ public class ContainerEndpoint extends AbstractEndpoint {
                             mediaType = "application/json",
                             schema = @Schema(implementation = ApiErrorDto.class))}),
     })
-    public ResponseEntity<ContainerDto> findById(@NotNull @PathVariable("containerId") Long containerId,
+    public ResponseEntity<ContainerDto> findById(@NotNull @PathVariable("containerId") UUID containerId,
                                                  Principal principal)
             throws ContainerNotFoundException {
         log.debug("endpoint find container, containerId={}", containerId);
@@ -139,7 +140,8 @@ public class ContainerEndpoint extends AbstractEndpoint {
             log.trace("attach privileged credential information");
             headers.set("X-Username", container.getPrivilegedUsername());
             headers.set("X-Password", container.getPrivilegedPassword());
-            headers.set("Access-Control-Expose-Headers", "X-Username X-Password");
+            headers.set("X-Jdbc-Method", container.getImage().getJdbcMethod());
+            headers.set("Access-Control-Expose-Headers", "X-Username X-Password X-Jdbc-Method");
         }
         return ResponseEntity.ok()
                 .headers(headers)
@@ -167,7 +169,7 @@ public class ContainerEndpoint extends AbstractEndpoint {
                             mediaType = "application/json",
                             schema = @Schema(implementation = ApiErrorDto.class))}),
     })
-    public ResponseEntity<Void> delete(@NotNull @PathVariable("containerId") Long containerId)
+    public ResponseEntity<Void> delete(@NotNull @PathVariable("containerId") UUID containerId)
             throws ContainerNotFoundException {
         log.debug("endpoint delete container, containerId={}", containerId);
         containerService.remove(containerService.find(containerId));
diff --git a/dbrepo-metadata-service/rest-service/src/main/java/at/tuwien/endpoints/DatabaseEndpoint.java b/dbrepo-metadata-service/rest-service/src/main/java/at/tuwien/endpoints/DatabaseEndpoint.java
index ccfd23e1ce..7daa200f2b 100644
--- a/dbrepo-metadata-service/rest-service/src/main/java/at/tuwien/endpoints/DatabaseEndpoint.java
+++ b/dbrepo-metadata-service/rest-service/src/main/java/at/tuwien/endpoints/DatabaseEndpoint.java
@@ -36,6 +36,7 @@ import org.springframework.web.bind.annotation.*;
 import java.security.Principal;
 import java.util.List;
 import java.util.Optional;
+import java.util.UUID;
 
 @Log4j2
 @RestController
@@ -209,7 +210,7 @@ public class DatabaseEndpoint extends AbstractEndpoint {
                             mediaType = "application/json",
                             schema = @Schema(implementation = ApiErrorDto.class))}),
     })
-    public ResponseEntity<DatabaseBriefDto> refreshTableMetadata(@NotNull @PathVariable("databaseId") Long databaseId,
+    public ResponseEntity<DatabaseBriefDto> refreshTableMetadata(@NotNull @PathVariable("databaseId") UUID databaseId,
                                                                  @NotNull Principal principal) throws DataServiceException,
             DataServiceConnectionException, DatabaseNotFoundException, SearchServiceException,
             SearchServiceConnectionException, NotAllowedException, QueryNotFoundException, MalformedException,
@@ -258,7 +259,7 @@ public class DatabaseEndpoint extends AbstractEndpoint {
                             mediaType = "application/json",
                             schema = @Schema(implementation = ApiErrorDto.class))}),
     })
-    public ResponseEntity<DatabaseBriefDto> refreshViewMetadata(@NotNull @PathVariable("databaseId") Long databaseId,
+    public ResponseEntity<DatabaseBriefDto> refreshViewMetadata(@NotNull @PathVariable("databaseId") UUID databaseId,
                                                                 @NotNull Principal principal) throws DataServiceException,
             DataServiceConnectionException, DatabaseNotFoundException, SearchServiceException,
             SearchServiceConnectionException, NotAllowedException, QueryNotFoundException, ViewNotFoundException {
@@ -311,7 +312,7 @@ public class DatabaseEndpoint extends AbstractEndpoint {
                             mediaType = "application/json",
                             schema = @Schema(implementation = ApiErrorDto.class))}),
     })
-    public ResponseEntity<DatabaseBriefDto> visibility(@NotNull @PathVariable("databaseId") Long databaseId,
+    public ResponseEntity<DatabaseBriefDto> visibility(@NotNull @PathVariable("databaseId") UUID databaseId,
                                                        @Valid @RequestBody DatabaseModifyVisibilityDto data,
                                                        @NotNull Principal principal) throws DatabaseNotFoundException,
             NotAllowedException, SearchServiceException, SearchServiceConnectionException, UserNotFoundException {
@@ -365,7 +366,7 @@ public class DatabaseEndpoint extends AbstractEndpoint {
                             mediaType = "application/json",
                             schema = @Schema(implementation = ApiErrorDto.class))}),
     })
-    public ResponseEntity<DatabaseBriefDto> transfer(@NotNull @PathVariable("databaseId") Long databaseId,
+    public ResponseEntity<DatabaseBriefDto> transfer(@NotNull @PathVariable("databaseId") UUID databaseId,
                                                      @Valid @RequestBody DatabaseTransferDto data,
                                                      @NotNull Principal principal) throws NotAllowedException,
             DataServiceException, DataServiceConnectionException, DatabaseNotFoundException, UserNotFoundException,
@@ -421,7 +422,7 @@ public class DatabaseEndpoint extends AbstractEndpoint {
                             mediaType = "application/json",
                             schema = @Schema(implementation = ApiErrorDto.class))}),
     })
-    public ResponseEntity<DatabaseBriefDto> modifyImage(@NotNull @PathVariable("databaseId") Long databaseId,
+    public ResponseEntity<DatabaseBriefDto> modifyImage(@NotNull @PathVariable("databaseId") UUID databaseId,
                                                         @Valid @RequestBody DatabaseModifyImageDto data,
                                                         @NotNull Principal principal) throws NotAllowedException,
             DatabaseNotFoundException, SearchServiceException, SearchServiceConnectionException,
@@ -456,7 +457,7 @@ public class DatabaseEndpoint extends AbstractEndpoint {
                             mediaType = "application/json",
                             schema = @Schema(implementation = ApiErrorDto.class))})
     })
-    public ResponseEntity<byte[]> findPreviewImage(@NotNull @PathVariable("databaseId") Long databaseId)
+    public ResponseEntity<byte[]> findPreviewImage(@NotNull @PathVariable("databaseId") UUID databaseId)
             throws DatabaseNotFoundException {
         log.debug("endpoint get database preview image, databaseId={}", databaseId);
         return ResponseEntity.ok()
@@ -490,7 +491,7 @@ public class DatabaseEndpoint extends AbstractEndpoint {
                             mediaType = "application/json",
                             schema = @Schema(implementation = ApiErrorDto.class))})
     })
-    public ResponseEntity<DatabaseDto> findById(@NotNull @PathVariable("databaseId") Long databaseId,
+    public ResponseEntity<DatabaseDto> findById(@NotNull @PathVariable("databaseId") UUID databaseId,
                                                 Principal principal) throws DatabaseNotFoundException,
             NotAllowedException {
         log.debug("endpoint find database, databaseId={}", databaseId);
diff --git a/dbrepo-metadata-service/rest-service/src/main/java/at/tuwien/endpoints/IdentifierEndpoint.java b/dbrepo-metadata-service/rest-service/src/main/java/at/tuwien/endpoints/IdentifierEndpoint.java
index b3d699086e..31dd1e542d 100644
--- a/dbrepo-metadata-service/rest-service/src/main/java/at/tuwien/endpoints/IdentifierEndpoint.java
+++ b/dbrepo-metadata-service/rest-service/src/main/java/at/tuwien/endpoints/IdentifierEndpoint.java
@@ -38,6 +38,7 @@ import org.springframework.web.bind.annotation.*;
 import java.security.Principal;
 import java.util.List;
 import java.util.Objects;
+import java.util.UUID;
 import java.util.regex.Matcher;
 import java.util.regex.Pattern;
 
@@ -90,10 +91,10 @@ public class IdentifierEndpoint extends AbstractEndpoint {
     })
     public ResponseEntity<?> findAll(@Valid @RequestParam(value = "type", required = false) IdentifierTypeDto type,
                                      @Valid @RequestParam(value = "status", required = false) IdentifierStatusTypeDto status,
-                                     @Valid @RequestParam(value = "dbid", required = false) Long dbid,
-                                     @Valid @RequestParam(value = "qid", required = false) Long qid,
-                                     @Valid @RequestParam(value = "vid", required = false) Long vid,
-                                     @Valid @RequestParam(value = "tid", required = false) Long tid,
+                                     @Valid @RequestParam(value = "dbid", required = false) UUID dbid,
+                                     @Valid @RequestParam(value = "qid", required = false) UUID qid,
+                                     @Valid @RequestParam(value = "vid", required = false) UUID vid,
+                                     @Valid @RequestParam(value = "tid", required = false) UUID tid,
                                      @RequestHeader(HttpHeaders.ACCEPT) String accept,
                                      Principal principal) {
         log.debug("endpoint find identifiers, type={}, status={}, dbid={}, qid={}, vid={}, tid={}, accept={}", type,
@@ -185,7 +186,7 @@ public class IdentifierEndpoint extends AbstractEndpoint {
                             mediaType = "application/json",
                             schema = @Schema(implementation = ApiErrorDto.class))}),
     })
-    public ResponseEntity<?> find(@Valid @PathVariable("identifierId") Long identifierId,
+    public ResponseEntity<?> find(@Valid @PathVariable("identifierId") UUID identifierId,
                                   @RequestHeader(HttpHeaders.ACCEPT) String accept,
                                   Principal principal) throws IdentifierNotFoundException,
             DataServiceException, DataServiceConnectionException, MalformedException, FormatNotAvailableException,
@@ -278,7 +279,7 @@ public class IdentifierEndpoint extends AbstractEndpoint {
                             mediaType = "application/json",
                             schema = @Schema(implementation = ApiErrorDto.class))}),
     })
-    public ResponseEntity<Void> delete(@NotNull @PathVariable("identifierId") Long identifierId)
+    public ResponseEntity<Void> delete(@NotNull @PathVariable("identifierId") UUID identifierId)
             throws IdentifierNotFoundException, NotAllowedException, DataServiceException,
             DataServiceConnectionException, DatabaseNotFoundException, SearchServiceException,
             SearchServiceConnectionException {
@@ -332,7 +333,7 @@ public class IdentifierEndpoint extends AbstractEndpoint {
                             mediaType = "application/json",
                             schema = @Schema(implementation = ApiErrorDto.class))}),
     })
-    public ResponseEntity<IdentifierDto> publish(@Valid @PathVariable("identifierId") Long identifierId)
+    public ResponseEntity<IdentifierDto> publish(@Valid @PathVariable("identifierId") UUID identifierId)
             throws SearchServiceException, DatabaseNotFoundException, SearchServiceConnectionException,
             MalformedException, DataServiceConnectionException, IdentifierNotFoundException, ExternalServiceException {
         log.debug("endpoint publish identifier, identifierId={}", identifierId);
@@ -380,7 +381,7 @@ public class IdentifierEndpoint extends AbstractEndpoint {
                             mediaType = "application/json",
                             schema = @Schema(implementation = ApiErrorDto.class))}),
     })
-    public ResponseEntity<IdentifierDto> save(@NotNull @PathVariable("identifierId") Long identifierId,
+    public ResponseEntity<IdentifierDto> save(@NotNull @PathVariable("identifierId") UUID identifierId,
                                               @NotNull @Valid @RequestBody IdentifierSaveDto data,
                                               @NotNull Principal principal) throws UserNotFoundException,
             DatabaseNotFoundException, MalformedException, NotAllowedException, DataServiceException,
diff --git a/dbrepo-metadata-service/rest-service/src/main/java/at/tuwien/endpoints/ImageEndpoint.java b/dbrepo-metadata-service/rest-service/src/main/java/at/tuwien/endpoints/ImageEndpoint.java
index 2aaad860a8..62c00d1ee8 100644
--- a/dbrepo-metadata-service/rest-service/src/main/java/at/tuwien/endpoints/ImageEndpoint.java
+++ b/dbrepo-metadata-service/rest-service/src/main/java/at/tuwien/endpoints/ImageEndpoint.java
@@ -10,7 +10,7 @@ import at.tuwien.exception.ImageAlreadyExistsException;
 import at.tuwien.exception.ImageInvalidException;
 import at.tuwien.exception.ImageNotFoundException;
 import at.tuwien.mapper.MetadataMapper;
-import at.tuwien.service.impl.ImageServiceImpl;
+import at.tuwien.service.ImageService;
 import io.micrometer.observation.annotation.Observed;
 import io.swagger.v3.oas.annotations.Operation;
 import io.swagger.v3.oas.annotations.media.ArraySchema;
@@ -31,6 +31,7 @@ import org.springframework.web.bind.annotation.*;
 
 import java.security.Principal;
 import java.util.List;
+import java.util.UUID;
 
 @Log4j2
 @RestController
@@ -39,11 +40,11 @@ import java.util.List;
 @RequestMapping(path = "/api/image")
 public class ImageEndpoint extends AbstractEndpoint {
 
+    private final ImageService imageService;
     private final MetadataMapper metadataMapper;
-    private final ImageServiceImpl imageService;
 
     @Autowired
-    public ImageEndpoint(ImageServiceImpl imageService, MetadataMapper metadataMapper) {
+    public ImageEndpoint(ImageService imageService, MetadataMapper metadataMapper) {
         this.imageService = imageService;
         this.metadataMapper = metadataMapper;
     }
@@ -119,7 +120,7 @@ public class ImageEndpoint extends AbstractEndpoint {
                             mediaType = "application/json",
                             schema = @Schema(implementation = ApiErrorDto.class))}),
     })
-    public ResponseEntity<ImageDto> findById(@NotNull @PathVariable("imageId") Long imageId) throws ImageNotFoundException {
+    public ResponseEntity<ImageDto> findById(@NotNull @PathVariable("imageId") UUID imageId) throws ImageNotFoundException {
         log.debug("endpoint find image, imageId={}", imageId);
         return ResponseEntity.ok()
                 .body(metadataMapper.containerImageToImageDto(imageService.find(imageId)));
@@ -144,7 +145,7 @@ public class ImageEndpoint extends AbstractEndpoint {
                             mediaType = "application/json",
                             schema = @Schema(implementation = ApiErrorDto.class))}),
     })
-    public ResponseEntity<ImageDto> update(@NotNull @PathVariable("imageId") Long imageId,
+    public ResponseEntity<ImageDto> update(@NotNull @PathVariable("imageId") UUID imageId,
                                            @RequestBody @Valid ImageChangeDto changeDto)
             throws ImageNotFoundException {
         log.debug("endpoint update image, imageId={}, changeDto={}", imageId, changeDto);
@@ -170,7 +171,7 @@ public class ImageEndpoint extends AbstractEndpoint {
                             mediaType = "application/json",
                             schema = @Schema(implementation = ApiErrorDto.class))}),
     })
-    public ResponseEntity<Void> delete(@NotNull @PathVariable("imageId") Long imageId) throws ImageNotFoundException {
+    public ResponseEntity<Void> delete(@NotNull @PathVariable("imageId") UUID imageId) throws ImageNotFoundException {
         log.debug("endpoint delete image, imageId={}", imageId);
         imageService.delete(imageService.find(imageId));
         return ResponseEntity.accepted()
diff --git a/dbrepo-metadata-service/rest-service/src/main/java/at/tuwien/endpoints/MessageEndpoint.java b/dbrepo-metadata-service/rest-service/src/main/java/at/tuwien/endpoints/MessageEndpoint.java
index 0aeeac9401..656279a86d 100644
--- a/dbrepo-metadata-service/rest-service/src/main/java/at/tuwien/endpoints/MessageEndpoint.java
+++ b/dbrepo-metadata-service/rest-service/src/main/java/at/tuwien/endpoints/MessageEndpoint.java
@@ -27,6 +27,7 @@ import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.web.bind.annotation.*;
 
 import java.util.List;
+import java.util.UUID;
 
 @Log4j2
 @CrossOrigin(origins = "*")
@@ -83,7 +84,7 @@ public class MessageEndpoint {
                             mediaType = "application/json",
                             schema = @Schema(implementation = ApiErrorDto.class))}),
     })
-    public ResponseEntity<BannerMessageDto> find(@NotNull @PathVariable("messageId") Long messageId)
+    public ResponseEntity<BannerMessageDto> find(@NotNull @PathVariable("messageId") UUID messageId)
             throws MessageNotFoundException {
         log.debug("endpoint find one maintenance message, messageId={}", messageId);
         return ResponseEntity.ok(metadataMapper.bannerMessageToBannerMessageDto(
@@ -128,7 +129,7 @@ public class MessageEndpoint {
                             mediaType = "application/json",
                             schema = @Schema(implementation = ApiErrorDto.class))}),
     })
-    public ResponseEntity<BannerMessageDto> update(@NotNull @PathVariable("messageId") Long messageId,
+    public ResponseEntity<BannerMessageDto> update(@NotNull @PathVariable("messageId") UUID messageId,
                                                    @Valid @RequestBody BannerMessageUpdateDto data)
             throws MessageNotFoundException {
         log.debug("endpoint update maintenance message, messageId={}, data={}", messageId, data);
@@ -154,7 +155,7 @@ public class MessageEndpoint {
                             mediaType = "application/json",
                             schema = @Schema(implementation = ApiErrorDto.class))}),
     })
-    public ResponseEntity<Void> delete(@NotNull @PathVariable("messageId") Long messageId)
+    public ResponseEntity<Void> delete(@NotNull @PathVariable("messageId") UUID messageId)
             throws MessageNotFoundException {
         log.debug("endpoint delete maintenance message, messageId={}", messageId);
         final BannerMessage message = bannerMessageService.find(messageId);
diff --git a/dbrepo-metadata-service/rest-service/src/main/java/at/tuwien/endpoints/OntologyEndpoint.java b/dbrepo-metadata-service/rest-service/src/main/java/at/tuwien/endpoints/OntologyEndpoint.java
index 7bc6bc037e..c723568556 100644
--- a/dbrepo-metadata-service/rest-service/src/main/java/at/tuwien/endpoints/OntologyEndpoint.java
+++ b/dbrepo-metadata-service/rest-service/src/main/java/at/tuwien/endpoints/OntologyEndpoint.java
@@ -29,6 +29,7 @@ import org.springframework.web.bind.annotation.*;
 
 import java.security.Principal;
 import java.util.List;
+import java.util.UUID;
 
 @Log4j2
 @CrossOrigin(origins = "*")
@@ -83,7 +84,7 @@ public class OntologyEndpoint extends AbstractEndpoint {
                             mediaType = "application/json",
                             schema = @Schema(implementation = ApiErrorDto.class))}),
     })
-    public ResponseEntity<OntologyDto> find(@NotNull @PathVariable("ontologyId") Long ontologyId)
+    public ResponseEntity<OntologyDto> find(@NotNull @PathVariable("ontologyId") UUID ontologyId)
             throws OntologyNotFoundException {
         log.debug("endpoint find all ontologies, ontologyId={}", ontologyId);
         return ResponseEntity.ok(metadataMapper.ontologyToOntologyDto(ontologyService.find(ontologyId)));
@@ -127,7 +128,7 @@ public class OntologyEndpoint extends AbstractEndpoint {
                             mediaType = "application/json",
                             schema = @Schema(implementation = ApiErrorDto.class))}),
     })
-    public ResponseEntity<OntologyDto> update(@NotNull @PathVariable("ontologyId") Long ontologyId,
+    public ResponseEntity<OntologyDto> update(@NotNull @PathVariable("ontologyId") UUID ontologyId,
                                               @NotNull @Valid @RequestBody OntologyModifyDto data)
             throws OntologyNotFoundException {
         log.debug("endpoint update ontology, ontologyId={}, data={}", ontologyId, data);
@@ -153,7 +154,7 @@ public class OntologyEndpoint extends AbstractEndpoint {
                             mediaType = "application/json",
                             schema = @Schema(implementation = ApiErrorDto.class))}),
     })
-    public ResponseEntity<Void> delete(@NotNull @PathVariable("ontologyId") Long ontologyId)
+    public ResponseEntity<Void> delete(@NotNull @PathVariable("ontologyId") UUID ontologyId)
             throws OntologyNotFoundException {
         log.debug("endpoint delete ontology, ontologyId={}", ontologyId);
         ontologyService.delete(ontologyService.find(ontologyId));
@@ -194,7 +195,7 @@ public class OntologyEndpoint extends AbstractEndpoint {
                             mediaType = "application/json",
                             schema = @Schema(implementation = ApiErrorDto.class))}),
     })
-    public ResponseEntity<List<EntityDto>> find(@NotNull @PathVariable("ontologyId") Long id,
+    public ResponseEntity<List<EntityDto>> find(@NotNull @PathVariable("ontologyId") UUID id,
                                                 @RequestParam(name = "label", required = false) String label,
                                                 @RequestParam(name = "uri", required = false) String uri)
             throws OntologyNotFoundException, UriMalformedException, FilterBadRequestException, MalformedException {
diff --git a/dbrepo-metadata-service/rest-service/src/main/java/at/tuwien/endpoints/TableEndpoint.java b/dbrepo-metadata-service/rest-service/src/main/java/at/tuwien/endpoints/TableEndpoint.java
index 32075fb5d8..06c5fa41f5 100644
--- a/dbrepo-metadata-service/rest-service/src/main/java/at/tuwien/endpoints/TableEndpoint.java
+++ b/dbrepo-metadata-service/rest-service/src/main/java/at/tuwien/endpoints/TableEndpoint.java
@@ -37,6 +37,7 @@ import org.springframework.web.bind.annotation.*;
 
 import java.security.Principal;
 import java.util.List;
+import java.util.UUID;
 import java.util.stream.Collectors;
 
 @Log4j2
@@ -89,7 +90,7 @@ public class TableEndpoint extends AbstractEndpoint {
                             mediaType = "application/json",
                             schema = @Schema(implementation = ApiErrorDto.class))}),
     })
-    public ResponseEntity<List<TableBriefDto>> list(@NotNull @PathVariable("databaseId") Long databaseId,
+    public ResponseEntity<List<TableBriefDto>> list(@NotNull @PathVariable("databaseId") UUID databaseId,
                                                     Principal principal) throws NotAllowedException,
             DatabaseNotFoundException, UserNotFoundException, AccessNotFoundException {
         log.debug("endpoint list tables, databaseId={}", databaseId);
@@ -142,8 +143,8 @@ public class TableEndpoint extends AbstractEndpoint {
                             mediaType = "application/json",
                             schema = @Schema(implementation = ApiErrorDto.class))}),
     })
-    public ResponseEntity<List<EntityDto>> analyseTable(@NotNull @PathVariable("databaseId") Long databaseId,
-                                                        @NotNull @PathVariable("tableId") Long tableId,
+    public ResponseEntity<List<EntityDto>> analyseTable(@NotNull @PathVariable("databaseId") UUID databaseId,
+                                                        @NotNull @PathVariable("tableId") UUID tableId,
                                                         @NotNull Principal principal)
             throws MalformedException, TableNotFoundException, DatabaseNotFoundException, NotAllowedException {
         log.debug("endpoint analyse table semantics, databaseId={}, tableId={}, principal.name={}", databaseId, tableId,
@@ -194,8 +195,8 @@ public class TableEndpoint extends AbstractEndpoint {
                             mediaType = "application/json",
                             schema = @Schema(implementation = ApiErrorDto.class))}),
     })
-    public ResponseEntity<Void> updateStatistic(@NotNull @PathVariable("databaseId") Long databaseId,
-                                                @NotNull @PathVariable("tableId") Long tableId,
+    public ResponseEntity<Void> updateStatistic(@NotNull @PathVariable("databaseId") UUID databaseId,
+                                                @NotNull @PathVariable("tableId") UUID tableId,
                                                 @NotNull Principal principal)
             throws TableNotFoundException, DatabaseNotFoundException, SearchServiceException, NotAllowedException,
             SearchServiceConnectionException, MalformedException, DataServiceException, DataServiceConnectionException {
@@ -251,9 +252,9 @@ public class TableEndpoint extends AbstractEndpoint {
                             mediaType = "application/json",
                             schema = @Schema(implementation = ApiErrorDto.class))}),
     })
-    public ResponseEntity<ColumnDto> updateColumn(@NotNull @PathVariable("databaseId") Long databaseId,
-                                                  @NotNull @PathVariable("tableId") Long tableId,
-                                                  @NotNull @PathVariable("columnId") Long columnId,
+    public ResponseEntity<ColumnDto> updateColumn(@NotNull @PathVariable("databaseId") UUID databaseId,
+                                                  @NotNull @PathVariable("tableId") UUID tableId,
+                                                  @NotNull @PathVariable("columnId") UUID columnId,
                                                   @NotNull @Valid @RequestBody ColumnSemanticsUpdateDto updateDto,
                                                   @NotNull Principal principal) throws NotAllowedException,
             MalformedException, DataServiceException, DataServiceConnectionException, UserNotFoundException,
@@ -301,9 +302,9 @@ public class TableEndpoint extends AbstractEndpoint {
                             mediaType = "application/json",
                             schema = @Schema(implementation = ApiErrorDto.class))}),
     })
-    public ResponseEntity<List<TableColumnEntityDto>> analyseTableColumn(@NotNull @PathVariable("databaseId") Long databaseId,
-                                                                         @NotNull @PathVariable("tableId") Long tableId,
-                                                                         @NotNull @PathVariable("columnId") Long columnId,
+    public ResponseEntity<List<TableColumnEntityDto>> analyseTableColumn(@NotNull @PathVariable("databaseId") UUID databaseId,
+                                                                         @NotNull @PathVariable("tableId") UUID tableId,
+                                                                         @NotNull @PathVariable("columnId") UUID columnId,
                                                                          @NotNull Principal principal)
             throws MalformedException, TableNotFoundException, DatabaseNotFoundException {
         log.debug("endpoint analyse table column semantics, databaseId={}, tableId={}, columnId={}, principal.name={}",
@@ -358,7 +359,7 @@ public class TableEndpoint extends AbstractEndpoint {
                             mediaType = "application/json",
                             schema = @Schema(implementation = ApiErrorDto.class))}),
     })
-    public ResponseEntity<TableBriefDto> create(@NotNull @PathVariable("databaseId") Long databaseId,
+    public ResponseEntity<TableBriefDto> create(@NotNull @PathVariable("databaseId") UUID databaseId,
                                                 @NotNull @Valid @RequestBody CreateTableDto data,
                                                 @NotNull Principal principal) throws NotAllowedException, MalformedException,
             DataServiceException, DataServiceConnectionException, DatabaseNotFoundException, UserNotFoundException,
@@ -413,8 +414,8 @@ public class TableEndpoint extends AbstractEndpoint {
                             mediaType = "application/json",
                             schema = @Schema(implementation = ApiErrorDto.class))}),
     })
-    public ResponseEntity<TableBriefDto> update(@NotNull @PathVariable("databaseId") Long databaseId,
-                                                @NotNull @PathVariable("tableId") Long tableId,
+    public ResponseEntity<TableBriefDto> update(@NotNull @PathVariable("databaseId") UUID databaseId,
+                                                @NotNull @PathVariable("tableId") UUID tableId,
                                                 @NotNull @Valid @RequestBody TableUpdateDto data,
                                                 @NotNull Principal principal) throws NotAllowedException,
             DataServiceException, DataServiceConnectionException, DatabaseNotFoundException, TableNotFoundException,
@@ -458,8 +459,8 @@ public class TableEndpoint extends AbstractEndpoint {
                             mediaType = "application/json",
                             schema = @Schema(implementation = ApiErrorDto.class))}),
     })
-    public ResponseEntity<TableDto> findById(@NotNull @PathVariable("databaseId") Long databaseId,
-                                             @NotNull @PathVariable("tableId") Long tableId,
+    public ResponseEntity<TableDto> findById(@NotNull @PathVariable("databaseId") UUID databaseId,
+                                             @NotNull @PathVariable("tableId") UUID tableId,
                                              Principal principal) throws TableNotFoundException,
             DatabaseNotFoundException, UserNotFoundException, NotAllowedException {
         log.debug("endpoint find table, databaseId={}, tableId={}", databaseId, tableId);
@@ -534,8 +535,8 @@ public class TableEndpoint extends AbstractEndpoint {
                             mediaType = "application/json",
                             schema = @Schema(implementation = ApiErrorDto.class))}),
     })
-    public ResponseEntity<Void> delete(@NotNull @PathVariable("databaseId") Long databaseId,
-                                       @NotNull @PathVariable("tableId") Long tableId,
+    public ResponseEntity<Void> delete(@NotNull @PathVariable("databaseId") UUID databaseId,
+                                       @NotNull @PathVariable("tableId") UUID tableId,
                                        @NotNull Principal principal) throws NotAllowedException,
             DataServiceException, DataServiceConnectionException, TableNotFoundException, DatabaseNotFoundException,
             SearchServiceException, SearchServiceConnectionException {
diff --git a/dbrepo-metadata-service/rest-service/src/main/java/at/tuwien/endpoints/ViewEndpoint.java b/dbrepo-metadata-service/rest-service/src/main/java/at/tuwien/endpoints/ViewEndpoint.java
index e8b40de8b2..9b8c73a154 100644
--- a/dbrepo-metadata-service/rest-service/src/main/java/at/tuwien/endpoints/ViewEndpoint.java
+++ b/dbrepo-metadata-service/rest-service/src/main/java/at/tuwien/endpoints/ViewEndpoint.java
@@ -35,6 +35,7 @@ import org.springframework.web.bind.annotation.*;
 
 import java.security.Principal;
 import java.util.List;
+import java.util.UUID;
 import java.util.stream.Collectors;
 
 @Log4j2
@@ -75,7 +76,7 @@ public class ViewEndpoint extends AbstractEndpoint {
                             mediaType = "application/json",
                             schema = @Schema(implementation = ApiErrorDto.class))}),
     })
-    public ResponseEntity<List<ViewBriefDto>> findAll(@NotNull @PathVariable("databaseId") Long databaseId,
+    public ResponseEntity<List<ViewBriefDto>> findAll(@NotNull @PathVariable("databaseId") UUID databaseId,
                                                       Principal principal) throws UserNotFoundException,
             DatabaseNotFoundException {
         log.debug("endpoint find all views, databaseId={}", databaseId);
@@ -136,7 +137,7 @@ public class ViewEndpoint extends AbstractEndpoint {
                             mediaType = "application/json",
                             schema = @Schema(implementation = ApiErrorDto.class))}),
     })
-    public ResponseEntity<ViewBriefDto> create(@NotNull @PathVariable("databaseId") Long databaseId,
+    public ResponseEntity<ViewBriefDto> create(@NotNull @PathVariable("databaseId") UUID databaseId,
                                                @NotNull @Valid @RequestBody CreateViewDto data,
                                                @NotNull Principal principal) throws NotAllowedException,
             MalformedException, DataServiceException, DataServiceConnectionException, DatabaseNotFoundException,
@@ -184,8 +185,8 @@ public class ViewEndpoint extends AbstractEndpoint {
                             mediaType = "application/json",
                             schema = @Schema(implementation = ApiErrorDto.class))}),
     })
-    public ResponseEntity<ViewDto> find(@NotNull @PathVariable("databaseId") Long databaseId,
-                                        @NotNull @PathVariable("viewId") Long viewId,
+    public ResponseEntity<ViewDto> find(@NotNull @PathVariable("databaseId") UUID databaseId,
+                                        @NotNull @PathVariable("viewId") UUID viewId,
                                         Principal principal) throws DatabaseNotFoundException,
             ViewNotFoundException {
         log.debug("endpoint find view, databaseId={}, viewId={}", databaseId, viewId);
@@ -252,8 +253,8 @@ public class ViewEndpoint extends AbstractEndpoint {
                             mediaType = "application/json",
                             schema = @Schema(implementation = ApiErrorDto.class))}),
     })
-    public ResponseEntity<Void> delete(@NotNull @PathVariable("databaseId") Long databaseId,
-                                       @NotNull @PathVariable("viewId") Long viewId,
+    public ResponseEntity<Void> delete(@NotNull @PathVariable("databaseId") UUID databaseId,
+                                       @NotNull @PathVariable("viewId") UUID viewId,
                                        @NotNull Principal principal) throws NotAllowedException, DataServiceException,
             DataServiceConnectionException, DatabaseNotFoundException, ViewNotFoundException, SearchServiceException,
             SearchServiceConnectionException, UserNotFoundException {
@@ -305,8 +306,8 @@ public class ViewEndpoint extends AbstractEndpoint {
                             mediaType = "application/json",
                             schema = @Schema(implementation = ApiErrorDto.class))}),
     })
-    public ResponseEntity<ViewBriefDto> update(@NotNull @PathVariable("databaseId") Long databaseId,
-                                               @NotNull @PathVariable("viewId") Long viewId,
+    public ResponseEntity<ViewBriefDto> update(@NotNull @PathVariable("databaseId") UUID databaseId,
+                                               @NotNull @PathVariable("viewId") UUID viewId,
                                                @NotNull @Valid @RequestBody ViewUpdateDto data,
                                                @NotNull Principal principal) throws NotAllowedException,
             DataServiceConnectionException, DatabaseNotFoundException, ViewNotFoundException, SearchServiceException,
diff --git a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/endpoints/AccessEndpointUnitTest.java b/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/endpoints/AccessEndpointUnitTest.java
index 376769e3c3..49b5d48de8 100644
--- a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/endpoints/AccessEndpointUnitTest.java
+++ b/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/endpoints/AccessEndpointUnitTest.java
@@ -347,7 +347,7 @@ public class AccessEndpointUnitTest extends AbstractUnitTest {
         assertNull(response.getBody());
     }
 
-    protected void generic_find(Long databaseId, Database database, DatabaseAccess access, Principal principal,
+    protected void generic_find(UUID databaseId, Database database, DatabaseAccess access, Principal principal,
                                 User caller, UUID userId, User user) throws UserNotFoundException,
             DatabaseNotFoundException, AccessNotFoundException, NotAllowedException {
 
diff --git a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/endpoints/ContainerEndpointUnitTest.java b/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/endpoints/ContainerEndpointUnitTest.java
index 00185d9ea1..46a5ac8980 100644
--- a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/endpoints/ContainerEndpointUnitTest.java
+++ b/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/endpoints/ContainerEndpointUnitTest.java
@@ -25,6 +25,7 @@ import org.springframework.test.context.junit.jupiter.SpringExtension;
 
 import java.security.Principal;
 import java.util.List;
+import java.util.UUID;
 
 import static org.junit.jupiter.api.Assertions.*;
 import static org.mockito.Mockito.doNothing;
@@ -68,10 +69,11 @@ public class ContainerEndpointUnitTest extends AbstractUnitTest {
 
         /* test */
         final ResponseEntity<ContainerDto> response = findById_generic(CONTAINER_1_ID, CONTAINER_1, USER_LOCAL_ADMIN_PRINCIPAL);
-        final HttpHeaders headers = response.getHeaders() ;
+        final HttpHeaders headers = response.getHeaders();
         assertEquals(List.of(CONTAINER_1_PRIVILEGED_USERNAME), headers.get("X-Username"));
         assertEquals(List.of(CONTAINER_1_PRIVILEGED_PASSWORD), headers.get("X-Password"));
-        assertEquals(List.of("X-Username X-Password"), headers.get("Access-Control-Expose-Headers"));
+        assertEquals(List.of(CONTAINER_1_PRIVILEGED_PASSWORD), headers.get("X-Jdbc-Method"));
+        assertEquals(List.of("X-Username X-Password X-Jdbc-Method"), headers.get("Access-Control-Expose-Headers"));
     }
 
     @Test
@@ -178,7 +180,7 @@ public class ContainerEndpointUnitTest extends AbstractUnitTest {
     /* ## GENERIC TEST CASES                                                                            ## */
     /* ################################################################################################### */
 
-    public ResponseEntity<ContainerDto> findById_generic(Long containerId, Container container, Principal principal)
+    public ResponseEntity<ContainerDto> findById_generic(UUID containerId, Container container, Principal principal)
             throws ContainerNotFoundException {
 
         /* mock */
@@ -192,7 +194,7 @@ public class ContainerEndpointUnitTest extends AbstractUnitTest {
         return response;
     }
 
-    public void delete_generic(Long containerId, Container container) throws ContainerNotFoundException {
+    public void delete_generic(UUID containerId, Container container) throws ContainerNotFoundException {
 
         /* mock */
         when(containerService.find(containerId))
diff --git a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/endpoints/DatabaseEndpointUnitTest.java b/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/endpoints/DatabaseEndpointUnitTest.java
index 1340d552d1..9978574d15 100644
--- a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/endpoints/DatabaseEndpointUnitTest.java
+++ b/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/endpoints/DatabaseEndpointUnitTest.java
@@ -743,7 +743,7 @@ public class DatabaseEndpointUnitTest extends AbstractUnitTest {
         doNothing()
                 .when(messageQueueService)
                 .setVirtualHostPermissions(user);
-        when(databaseService.findById(anyLong()))
+        when(databaseService.findById(any(UUID.class)))
                 .thenReturn(DATABASE_1);
 
         /* test */
@@ -752,7 +752,7 @@ public class DatabaseEndpointUnitTest extends AbstractUnitTest {
         assertNotNull(response.getBody());
     }
 
-    public void visibility_generic(Long databaseId, Database database, DatabaseModifyVisibilityDto data,
+    public void visibility_generic(UUID databaseId, Database database, DatabaseModifyVisibilityDto data,
                                    Principal principal) throws NotAllowedException, DatabaseNotFoundException,
             SearchServiceException, SearchServiceConnectionException, UserNotFoundException {
 
@@ -774,7 +774,7 @@ public class DatabaseEndpointUnitTest extends AbstractUnitTest {
         assertNotNull(response.getBody());
     }
 
-    public DatabaseDto findById_generic(Long databaseId, Database database, Principal principal)
+    public DatabaseDto findById_generic(UUID databaseId, Database database, Principal principal)
             throws DataServiceConnectionException, DatabaseNotFoundException, ExchangeNotFoundException,
             DataServiceException, UserNotFoundException, NotAllowedException {
 
@@ -796,7 +796,7 @@ public class DatabaseEndpointUnitTest extends AbstractUnitTest {
         return body;
     }
 
-    public ResponseEntity<byte[]> findPreviewImage_generic(Long databaseId, Database database) throws DatabaseNotFoundException {
+    public ResponseEntity<byte[]> findPreviewImage_generic(UUID databaseId, Database database) throws DatabaseNotFoundException {
 
         /* mock */
         if (database != null) {
diff --git a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/endpoints/IdentifierEndpointUnitTest.java b/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/endpoints/IdentifierEndpointUnitTest.java
index 419393b485..5efc216526 100644
--- a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/endpoints/IdentifierEndpointUnitTest.java
+++ b/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/endpoints/IdentifierEndpointUnitTest.java
@@ -41,6 +41,7 @@ import java.io.InputStream;
 import java.nio.charset.StandardCharsets;
 import java.security.Principal;
 import java.util.List;
+import java.util.UUID;
 import java.util.stream.Stream;
 
 import static org.junit.jupiter.api.Assertions.*;
@@ -210,8 +211,8 @@ public class IdentifierEndpointUnitTest extends AbstractUnitTest {
     @ParameterizedTest
     @MethodSource("findAll_anonymousFilterDatabase_parameters")
     @WithAnonymousUser
-    public void findAll_anonymousFilterDatabase_succeeds(String name, Long databaseId, Long queryId, Long viewId,
-                                                         Long tableId, IdentifierStatusTypeDto status,
+    public void findAll_anonymousFilterDatabase_succeeds(String name, UUID databaseId, UUID queryId, UUID viewId,
+                                                         UUID tableId, IdentifierStatusTypeDto status,
                                                          Integer expectedSize) throws ViewNotFoundException,
             TableNotFoundException, DatabaseNotFoundException {
 
@@ -239,7 +240,7 @@ public class IdentifierEndpointUnitTest extends AbstractUnitTest {
     @ParameterizedTest
     @MethodSource("findAll_filterSubset_parameters")
     @WithMockUser(username = USER_2_USERNAME)
-    public void findAll_filterSubset_succeeds(String name, Long databaseId, Long queryId, Long viewId, Long tableId,
+    public void findAll_filterSubset_succeeds(String name, UUID databaseId, UUID queryId, UUID viewId, UUID tableId,
                                               IdentifierStatusTypeDto status, Integer expectedSize) {
 
         /* mock */
@@ -258,8 +259,8 @@ public class IdentifierEndpointUnitTest extends AbstractUnitTest {
     @ParameterizedTest
     @MethodSource("findAll_anonymousFilterDatabase_parameters")
     @WithAnonymousUser
-    public void findAll_wrongPrincipalFilterDatabase_succeeds(String name, Long databaseId, Long queryId, Long viewId,
-                                                              Long tableId, IdentifierStatusTypeDto status,
+    public void findAll_wrongPrincipalFilterDatabase_succeeds(String name, UUID databaseId, UUID queryId, UUID viewId,
+                                                              UUID tableId, IdentifierStatusTypeDto status,
                                                               Integer expectedSize)
             throws ViewNotFoundException, TableNotFoundException, DatabaseNotFoundException {
 
@@ -288,7 +289,7 @@ public class IdentifierEndpointUnitTest extends AbstractUnitTest {
     @MethodSource("findAll_filterDatabase_parameters")
     @WithAnonymousUser
     public void findAll_filterDatabase_succeeds(String name, IdentifierTypeDto type, IdentifierStatusTypeDto status,
-                                                Long databaseId, Long queryId, Long viewId, Long tableId,
+                                                UUID databaseId, UUID queryId, UUID viewId, UUID tableId,
                                                 Integer expectedSize, Principal principal) throws ViewNotFoundException,
             TableNotFoundException, DatabaseNotFoundException {
 
@@ -1115,7 +1116,7 @@ public class IdentifierEndpointUnitTest extends AbstractUnitTest {
         final ResponseEntity<?> response = generic_find(null, null);
         assertEquals(HttpStatus.MOVED_PERMANENTLY, response.getStatusCode());
         assertNotNull(response.getHeaders().get("Location"));
-        assertEquals(endpointConfig.getWebsiteUrl() + "/database/" + IDENTIFIER_1_DATABASE_ID + "/info?pid=" + IDENTIFIER_1_DATABASE_ID,
+        assertEquals(endpointConfig.getWebsiteUrl() + "/database/" + DATABASE_1_ID + "/info?pid=" + IDENTIFIER_1_ID,
                 response.getHeaders().getFirst("Location"));
     }
 
@@ -1148,7 +1149,7 @@ public class IdentifierEndpointUnitTest extends AbstractUnitTest {
             SearchServiceException, SearchServiceConnectionException, TableNotFoundException, ExternalServiceException {
 
         /* mock */
-        when(dataServiceGateway.findQuery(DATABASE_2_ID, IDENTIFIER_5_QUERY_ID))
+        when(dataServiceGateway.findQuery(DATABASE_2_ID, QUERY_2_ID))
                 .thenReturn(QUERY_2_DTO);
 
         /* test */
@@ -1158,12 +1159,12 @@ public class IdentifierEndpointUnitTest extends AbstractUnitTest {
     @ParameterizedTest
     @MethodSource("malformedSubset_parameters")
     @WithMockUser(username = USER_1_USERNAME, authorities = {"create-identifier"})
-    public void save_malformedSubset_fails(String name, Long queryId, Long viewId, Long tableId) {
+    public void save_malformedSubset_fails(String name, UUID queryId, UUID viewId, UUID tableId) {
         final IdentifierSaveDto request = IdentifierSaveDto.builder()
                 .queryId(queryId)
                 .viewId(viewId)
                 .tableId(tableId)
-                .databaseId(IDENTIFIER_1_DATABASE_ID)
+                .databaseId(DATABASE_1_ID)
                 .descriptions(List.of(IDENTIFIER_1_DESCRIPTION_1_CREATE_DTO))
                 .titles(List.of(IDENTIFIER_1_TITLE_1_CREATE_DTO))
                 .relatedIdentifiers(List.of())
@@ -1183,12 +1184,12 @@ public class IdentifierEndpointUnitTest extends AbstractUnitTest {
     @ParameterizedTest
     @MethodSource("malformedView_parameters")
     @WithMockUser(username = USER_1_USERNAME, authorities = {"create-identifier"})
-    public void save_malformedView_fails(String name, Long queryId, Long viewId, Long tableId) {
+    public void save_malformedView_fails(String name, UUID queryId, UUID viewId, UUID tableId) {
         final IdentifierSaveDto request = IdentifierSaveDto.builder()
                 .queryId(queryId)
                 .viewId(viewId)
                 .tableId(tableId)
-                .databaseId(IDENTIFIER_1_DATABASE_ID)
+                .databaseId(DATABASE_1_ID)
                 .descriptions(List.of(IDENTIFIER_1_DESCRIPTION_1_CREATE_DTO))
                 .titles(List.of(IDENTIFIER_1_TITLE_1_CREATE_DTO))
                 .relatedIdentifiers(List.of())
@@ -1208,12 +1209,12 @@ public class IdentifierEndpointUnitTest extends AbstractUnitTest {
     @ParameterizedTest
     @MethodSource("malformedTable_parameters")
     @WithMockUser(username = USER_1_USERNAME, authorities = {"create-identifier"})
-    public void save_malformedTable_fails(String name, Long queryId, Long viewId, Long tableId) {
+    public void save_malformedTable_fails(String name, UUID queryId, UUID viewId, UUID tableId) {
         final IdentifierSaveDto request = IdentifierSaveDto.builder()
                 .queryId(queryId)
                 .viewId(viewId)
                 .tableId(tableId)
-                .databaseId(IDENTIFIER_1_DATABASE_ID)
+                .databaseId(DATABASE_1_ID)
                 .descriptions(List.of(IDENTIFIER_1_DESCRIPTION_1_CREATE_DTO))
                 .titles(List.of(IDENTIFIER_1_TITLE_1_CREATE_DTO))
                 .relatedIdentifiers(List.of())
@@ -1233,12 +1234,12 @@ public class IdentifierEndpointUnitTest extends AbstractUnitTest {
     @ParameterizedTest
     @MethodSource("malformedDatabase_parameters")
     @WithMockUser(username = USER_1_USERNAME, authorities = {"create-identifier"})
-    public void save_malformedDatabase_fails(String name, Long queryId, Long viewId, Long tableId) {
+    public void save_malformedDatabase_fails(String name, UUID queryId, UUID viewId, UUID tableId) {
         final IdentifierSaveDto request = IdentifierSaveDto.builder()
                 .queryId(queryId)
                 .viewId(viewId)
                 .tableId(tableId)
-                .databaseId(IDENTIFIER_1_DATABASE_ID)
+                .databaseId(DATABASE_1_ID)
                 .descriptions(List.of(IDENTIFIER_1_DESCRIPTION_1_CREATE_DTO))
                 .titles(List.of(IDENTIFIER_1_TITLE_1_CREATE_DTO))
                 .relatedIdentifiers(List.of())
@@ -1259,7 +1260,7 @@ public class IdentifierEndpointUnitTest extends AbstractUnitTest {
     @WithMockUser(username = USER_1_USERNAME, authorities = {"create-identifier"})
     public void save_invalidDateDay_fails() {
         final IdentifierSaveDto request = IdentifierSaveDto.builder()
-                .databaseId(IDENTIFIER_1_DATABASE_ID)
+                .databaseId(DATABASE_1_ID)
                 .descriptions(List.of(IDENTIFIER_1_DESCRIPTION_1_CREATE_DTO))
                 .titles(List.of(IDENTIFIER_1_TITLE_1_CREATE_DTO))
                 .relatedIdentifiers(List.of(IDENTIFIER_1_RELATED_IDENTIFIER_5_CREATE_DTO))
@@ -1281,7 +1282,7 @@ public class IdentifierEndpointUnitTest extends AbstractUnitTest {
     @WithMockUser(username = USER_1_USERNAME, authorities = {"create-identifier"})
     public void save_invalidDateMonth_fails() {
         final IdentifierSaveDto request = IdentifierSaveDto.builder()
-                .databaseId(IDENTIFIER_1_DATABASE_ID)
+                .databaseId(DATABASE_1_ID)
                 .descriptions(List.of(IDENTIFIER_1_DESCRIPTION_1_CREATE_DTO))
                 .titles(List.of(IDENTIFIER_1_TITLE_1_CREATE_DTO))
                 .relatedIdentifiers(List.of(IDENTIFIER_1_RELATED_IDENTIFIER_5_CREATE_DTO))
@@ -1319,7 +1320,7 @@ public class IdentifierEndpointUnitTest extends AbstractUnitTest {
     @WithMockUser(username = USER_1_USERNAME, authorities = {"create-identifier"})
     public void save_invalidTable_fails() {
         final IdentifierSaveDto request = IdentifierSaveDto.builder()
-                .viewId(1L)  // <--
+                .viewId(UUID.randomUUID())  // <--
                 .databaseId(DATABASE_1_ID)
                 .descriptions(List.of(IDENTIFIER_1_DESCRIPTION_1_CREATE_DTO))
                 .titles(List.of(IDENTIFIER_1_TITLE_1_CREATE_DTO))
@@ -1341,7 +1342,7 @@ public class IdentifierEndpointUnitTest extends AbstractUnitTest {
     @ParameterizedTest
     @MethodSource("save_parameters")
     @WithMockUser(username = USER_1_USERNAME, authorities = {"create-identifier"})
-    public void save_noForeign_fails(String name, Long databaseId, Database database, DatabaseAccess access,
+    public void save_noForeign_fails(String name, UUID databaseId, Database database, DatabaseAccess access,
                                      Identifier identifier, IdentifierSaveDto data, Principal principal, User user) {
 
         /* test */
@@ -1455,7 +1456,7 @@ public class IdentifierEndpointUnitTest extends AbstractUnitTest {
     /* ## GENERIC TEST CASES                                                                            ## */
     /* ################################################################################################### */
 
-    protected void generic_save(Long databaseId, Database database, DatabaseAccess access, Identifier identifier,
+    protected void generic_save(UUID databaseId, Database database, DatabaseAccess access, Identifier identifier,
                                 IdentifierSaveDto data, Principal principal, User user) throws MalformedException,
             NotAllowedException, DataServiceException, DataServiceConnectionException, UserNotFoundException,
             DatabaseNotFoundException, AccessNotFoundException, QueryNotFoundException,
diff --git a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/endpoints/ImageEndpointUnitTest.java b/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/endpoints/ImageEndpointUnitTest.java
index bf1b2ffa55..b5be98cfb6 100644
--- a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/endpoints/ImageEndpointUnitTest.java
+++ b/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/endpoints/ImageEndpointUnitTest.java
@@ -25,6 +25,7 @@ import org.springframework.test.context.junit.jupiter.SpringExtension;
 
 import java.security.Principal;
 import java.util.List;
+import java.util.UUID;
 
 import static org.junit.jupiter.api.Assertions.*;
 import static org.mockito.Mockito.*;
@@ -260,7 +261,7 @@ public class ImageEndpointUnitTest extends AbstractUnitTest {
         assertNotNull(response.getBody());
     }
 
-    public void findById_generic(Long imageId, ContainerImage image) throws ImageNotFoundException {
+    public void findById_generic(UUID imageId, ContainerImage image) throws ImageNotFoundException {
 
         /* mock */
         when(imageService.find(imageId))
@@ -272,7 +273,7 @@ public class ImageEndpointUnitTest extends AbstractUnitTest {
         assertNotNull(response.getBody());
     }
 
-    public void delete_generic(Long imageId, ContainerImage image) throws ImageNotFoundException {
+    public void delete_generic(UUID imageId, ContainerImage image) throws ImageNotFoundException {
 
         /* mock */
         when(imageService.find(imageId))
@@ -284,7 +285,7 @@ public class ImageEndpointUnitTest extends AbstractUnitTest {
         assertNull(response.getBody());
     }
 
-    public void modify_generic(Long imageId, ContainerImage image, ImageChangeDto data) throws ImageNotFoundException {
+    public void modify_generic(UUID imageId, ContainerImage image, ImageChangeDto data) throws ImageNotFoundException {
 
         /* mock */
         when(imageService.find(imageId))
diff --git a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/endpoints/MessageEndpointUnitTest.java b/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/endpoints/MessageEndpointUnitTest.java
index 22516074ae..0fabc67c91 100644
--- a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/endpoints/MessageEndpointUnitTest.java
+++ b/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/endpoints/MessageEndpointUnitTest.java
@@ -21,6 +21,7 @@ import org.springframework.security.test.context.support.WithMockUser;
 import org.springframework.test.context.junit.jupiter.SpringExtension;
 
 import java.util.List;
+import java.util.UUID;
 
 import static org.junit.jupiter.api.Assertions.*;
 import static org.mockito.Mockito.*;
@@ -215,7 +216,7 @@ public class MessageEndpointUnitTest extends AbstractUnitTest {
         assertNotNull(response.getBody());
     }
 
-    protected void find_generic(Long messageId, BannerMessage message) throws MessageNotFoundException {
+    protected void find_generic(UUID messageId, BannerMessage message) throws MessageNotFoundException {
 
         /* mock */
         if (message != null) {
@@ -245,7 +246,7 @@ public class MessageEndpointUnitTest extends AbstractUnitTest {
         assertNotNull(response.getBody());
     }
 
-    protected void update_generic(BannerMessageUpdateDto data, Long messageId, BannerMessage message)
+    protected void update_generic(BannerMessageUpdateDto data, UUID messageId, BannerMessage message)
             throws MessageNotFoundException {
 
         /* mock */
@@ -260,7 +261,7 @@ public class MessageEndpointUnitTest extends AbstractUnitTest {
         assertNotNull(response.getBody());
     }
 
-    protected void delete_generic(Long messageId, BannerMessage message) throws MessageNotFoundException {
+    protected void delete_generic(UUID messageId, BannerMessage message) throws MessageNotFoundException {
 
         /* mock */
         if (message != null) {
diff --git a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/endpoints/OntologyEndpointUnitTest.java b/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/endpoints/OntologyEndpointUnitTest.java
index c3f276c2df..ab3d0775ad 100644
--- a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/endpoints/OntologyEndpointUnitTest.java
+++ b/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/endpoints/OntologyEndpointUnitTest.java
@@ -26,6 +26,7 @@ import org.springframework.test.context.junit.jupiter.SpringExtension;
 
 import java.security.Principal;
 import java.util.List;
+import java.util.UUID;
 
 import static org.junit.jupiter.api.Assertions.*;
 import static org.mockito.Mockito.*;
@@ -84,20 +85,21 @@ public class OntologyEndpointUnitTest extends AbstractUnitTest {
     @Test
     @WithMockUser(username = USER_1_USERNAME, authorities = {"execute-semantic-query"})
     public void find_noSparql_fails() throws OntologyNotFoundException {
+        final UUID id = UUID.randomUUID();
         final Ontology mock = Ontology.builder()
-                .id(9999L)
+                .id(id)
                 .uri(ONTOLOGY_1_URI)
                 .uriPattern(ONTOLOGY_1_URI_PATTERN)
                 .sparqlEndpoint(null) // <<<
                 .build();
 
         /* mock */
-        when(ontologyService.find(9999L))
+        when(ontologyService.find(id))
                 .thenReturn(mock);
 
         /* test */
         assertThrows(OntologyNotFoundException.class, () -> {
-            ontologyEndpoint.find(9999L, null, UNIT_1_URI);
+            ontologyEndpoint.find(id, null, UNIT_1_URI);
         });
     }
 
@@ -107,7 +109,7 @@ public class OntologyEndpointUnitTest extends AbstractUnitTest {
 
         /* test */
         assertThrows(OntologyNotFoundException.class, () -> {
-            find_generic(99999L, null);
+            find_generic(UUID.randomUUID(), null);
         });
     }
 
@@ -293,7 +295,7 @@ public class OntologyEndpointUnitTest extends AbstractUnitTest {
         assertEquals(4, body.size());
     }
 
-    public void find_generic(Long ontologyId, Ontology ontology) throws OntologyNotFoundException {
+    public void find_generic(UUID ontologyId, Ontology ontology) throws OntologyNotFoundException {
 
         /* mock */
         if (ontology != null) {
@@ -340,7 +342,7 @@ public class OntologyEndpointUnitTest extends AbstractUnitTest {
         assertNotNull(body);
     }
 
-    public void update_generic(Long ontologyId, OntologyModifyDto modifyDto, Ontology ontology)
+    public void update_generic(UUID ontologyId, OntologyModifyDto modifyDto, Ontology ontology)
             throws OntologyNotFoundException {
 
         /* mock */
@@ -362,7 +364,7 @@ public class OntologyEndpointUnitTest extends AbstractUnitTest {
         assertNotNull(body);
     }
 
-    public void delete_generic(Long ontologyId, Ontology ontology) throws OntologyNotFoundException {
+    public void delete_generic(UUID ontologyId, Ontology ontology) throws OntologyNotFoundException {
 
         /* mock */
         doNothing()
@@ -374,7 +376,7 @@ public class OntologyEndpointUnitTest extends AbstractUnitTest {
         assertEquals(HttpStatus.ACCEPTED, response.getStatusCode());
     }
 
-    public List<EntityDto> find_generic(Long ontologyId, String label, String uri, Ontology ontology,
+    public List<EntityDto> find_generic(UUID ontologyId, String label, String uri, Ontology ontology,
                                         EntityDto entityDto) throws MalformedException, UriMalformedException,
             FilterBadRequestException, OntologyNotFoundException {
 
diff --git a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/endpoints/TableEndpointUnitTest.java b/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/endpoints/TableEndpointUnitTest.java
index 16551784c8..092b8c563d 100644
--- a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/endpoints/TableEndpointUnitTest.java
+++ b/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/endpoints/TableEndpointUnitTest.java
@@ -1131,7 +1131,7 @@ public class TableEndpointUnitTest extends AbstractUnitTest {
     /* ## GENERIC TEST CASES                                                                            ## */
     /* ################################################################################################### */
 
-    public void analyseTable_generic(Long databaseId, Database database, Long tableId, Table table, Principal principal)
+    public void analyseTable_generic(UUID databaseId, Database database, UUID tableId, Table table, Principal principal)
             throws MalformedException, TableNotFoundException, DatabaseNotFoundException, NotAllowedException {
 
         /* mock */
@@ -1149,7 +1149,7 @@ public class TableEndpointUnitTest extends AbstractUnitTest {
         assertNotNull(body);
     }
 
-    public void analyseTableColumn_generic(Long databaseId, Database database, Long tableId, Long columnId,
+    public void analyseTableColumn_generic(UUID databaseId, Database database, UUID tableId, UUID columnId,
                                            TableColumn tableColumn, Principal principal)
             throws MalformedException, TableNotFoundException, DatabaseNotFoundException {
 
@@ -1165,7 +1165,7 @@ public class TableEndpointUnitTest extends AbstractUnitTest {
         assertNotNull(body);
     }
 
-    protected ResponseEntity<List<TableBriefDto>> generic_list(Long databaseId, Database database, Principal principal,
+    protected ResponseEntity<List<TableBriefDto>> generic_list(UUID databaseId, Database database, Principal principal,
                                                                User user, DatabaseAccess access)
             throws NotAllowedException, DatabaseNotFoundException, AccessNotFoundException, UserNotFoundException {
 
@@ -1193,7 +1193,7 @@ public class TableEndpointUnitTest extends AbstractUnitTest {
         return tableEndpoint.list(databaseId, principal);
     }
 
-    protected ResponseEntity<TableBriefDto> generic_create(Long databaseId, Database database, CreateTableDto data,
+    protected ResponseEntity<TableBriefDto> generic_create(UUID databaseId, Database database, CreateTableDto data,
                                                            Principal principal, User user, DatabaseAccess access)
             throws MalformedException, NotAllowedException, DataServiceException, DataServiceConnectionException,
             UserNotFoundException, DatabaseNotFoundException, AccessNotFoundException, TableNotFoundException,
@@ -1226,11 +1226,10 @@ public class TableEndpointUnitTest extends AbstractUnitTest {
         return tableEndpoint.create(databaseId, data, principal);
     }
 
-    protected ResponseEntity<TableDto> generic_findById(Long databaseId, Database database, Long tableId,
+    protected ResponseEntity<TableDto> generic_findById(UUID databaseId, Database database, UUID tableId,
                                                         Table table, Principal principal, User user,
-                                                        DatabaseAccess access) throws DataServiceException,
-            DataServiceConnectionException, TableNotFoundException, DatabaseNotFoundException, AccessNotFoundException,
-            QueueNotFoundException, UserNotFoundException, NotAllowedException {
+                                                        DatabaseAccess access) throws TableNotFoundException,
+            DatabaseNotFoundException, AccessNotFoundException, UserNotFoundException, NotAllowedException {
 
         /* mock */
         if (database != null) {
@@ -1277,15 +1276,15 @@ public class TableEndpointUnitTest extends AbstractUnitTest {
         /* mock */
         when(databaseService.findById(DATABASE_1_ID))
                 .thenReturn(DATABASE_1);
-        when(tableService.findById(any(Database.class), anyLong()))
+        when(tableService.findById(any(Database.class), any(UUID.class)))
                 .thenReturn(table);
 
         /* test */
         return tableEndpoint.delete(DATABASE_1_ID, TABLE_1_ID, principal);
     }
 
-    protected ResponseEntity<ColumnDto> generic_updateColumn(Long databaseId, Database database, Long tableId,
-                                                             Table table, Long columnId, TableColumn column,
+    protected ResponseEntity<ColumnDto> generic_updateColumn(UUID databaseId, Database database, UUID tableId,
+                                                             Table table, UUID columnId, TableColumn column,
                                                              Principal principal, User user,
                                                              ColumnSemanticsUpdateDto data, DatabaseAccess access)
             throws DataServiceException, DataServiceConnectionException, MalformedException, NotAllowedException,
diff --git a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/endpoints/UserEndpointUnitTest.java b/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/endpoints/UserEndpointUnitTest.java
index c69701e6dd..5f0341fa7b 100644
--- a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/endpoints/UserEndpointUnitTest.java
+++ b/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/endpoints/UserEndpointUnitTest.java
@@ -8,8 +8,6 @@ import at.tuwien.entities.user.User;
 import at.tuwien.exception.AuthServiceException;
 import at.tuwien.exception.NotAllowedException;
 import at.tuwien.exception.UserNotFoundException;
-import at.tuwien.service.AuthenticationService;
-import at.tuwien.service.DatabaseService;
 import at.tuwien.service.UserService;
 import at.tuwien.test.AbstractUnitTest;
 import lombok.extern.log4j.Log4j2;
@@ -44,12 +42,6 @@ public class UserEndpointUnitTest extends AbstractUnitTest {
     @MockBean
     private UserService userService;
 
-    @MockBean
-    private DatabaseService databaseService;
-
-    @MockBean
-    private AuthenticationService authenticationService;
-
     @Autowired
     private UserEndpoint userEndpoint;
 
diff --git a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/endpoints/ViewEndpointUnitTest.java b/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/endpoints/ViewEndpointUnitTest.java
index d1434ef9e4..29849105cf 100644
--- a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/endpoints/ViewEndpointUnitTest.java
+++ b/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/endpoints/ViewEndpointUnitTest.java
@@ -441,7 +441,7 @@ public class ViewEndpointUnitTest extends AbstractUnitTest {
     /* ## GENERIC TEST CASES                                                                            ## */
     /* ################################################################################################### */
 
-    protected void findAll_generic(Long databaseId, Database database, Principal principal, UUID userId, User user,
+    protected void findAll_generic(UUID databaseId, Database database, Principal principal, UUID userId, User user,
                                    DatabaseAccess access) throws AccessNotFoundException, UserNotFoundException,
             DatabaseNotFoundException {
 
@@ -477,7 +477,7 @@ public class ViewEndpointUnitTest extends AbstractUnitTest {
         }
     }
 
-    protected void create_generic(Long databaseId, Database database, Principal principal, UUID userId, User user,
+    protected void create_generic(UUID databaseId, Database database, Principal principal, UUID userId, User user,
                                   DatabaseAccess access) throws MalformedException, DataServiceException,
             DataServiceConnectionException, NotAllowedException, UserNotFoundException, DatabaseNotFoundException,
             AccessNotFoundException, SearchServiceException, SearchServiceConnectionException {
@@ -514,7 +514,7 @@ public class ViewEndpointUnitTest extends AbstractUnitTest {
         assertEquals(VIEW_1_NAME, response.getBody().getName());
     }
 
-    protected ResponseEntity<ViewDto> find_generic(Long databaseId, Database database, Principal principal,
+    protected ResponseEntity<ViewDto> find_generic(UUID databaseId, Database database, Principal principal,
                                                    UUID userId, User user, DatabaseAccess access)
             throws DatabaseNotFoundException, UserNotFoundException, AccessNotFoundException, ViewNotFoundException {
 
@@ -533,10 +533,10 @@ public class ViewEndpointUnitTest extends AbstractUnitTest {
         if (principal != null) {
             when(userService.findById(userId))
                     .thenReturn(user);
-            when(viewService.findById(any(Database.class), anyLong()))
+            when(viewService.findById(any(Database.class), any(UUID.class)))
                     .thenReturn(VIEW_5);
         } else {
-            when(viewService.findById(any(Database.class), anyLong()))
+            when(viewService.findById(any(Database.class), any(UUID.class)))
                     .thenReturn(VIEW_5);
         }
 
@@ -548,7 +548,7 @@ public class ViewEndpointUnitTest extends AbstractUnitTest {
         return response;
     }
 
-    protected void delete_generic(Long databaseId, Database database, Long viewId, View view, Principal principal,
+    protected void delete_generic(UUID databaseId, Database database, UUID viewId, View view, Principal principal,
                                   UUID userId, User user, DatabaseAccess access) throws NotAllowedException,
             DataServiceException, DataServiceConnectionException, DatabaseNotFoundException, AccessNotFoundException,
             SearchServiceException, SearchServiceConnectionException, ViewNotFoundException, UserNotFoundException {
diff --git a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/mapper/MetadataMapperUnitTest.java b/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/mapper/MetadataMapperUnitTest.java
index 6505506eea..02750dba7d 100644
--- a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/mapper/MetadataMapperUnitTest.java
+++ b/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/mapper/MetadataMapperUnitTest.java
@@ -87,7 +87,7 @@ public class MetadataMapperUnitTest extends AbstractUnitTest {
         assertNull(response.getDatabase());
         assertNull(response.getViewId());
         assertNull(response.getTableId());
-        assertEquals(IDENTIFIER_2_QUERY_ID, response.getQueryId());
+        assertEquals(QUERY_1_ID, response.getQueryId());
         assertNull(response.getDoi());
         assertEquals(IDENTIFIER_2_TYPE, response.getType());
     }
diff --git a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/mvc/PrometheusEndpointMvcTest.java b/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/mvc/PrometheusEndpointMvcTest.java
index 7611a0a8b5..2adc2f0647 100644
--- a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/mvc/PrometheusEndpointMvcTest.java
+++ b/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/mvc/PrometheusEndpointMvcTest.java
@@ -9,13 +9,8 @@ import at.tuwien.api.identifier.IdentifierTypeDto;
 import at.tuwien.config.MetricsConfig;
 import at.tuwien.endpoints.*;
 import at.tuwien.test.AbstractUnitTest;
-import io.micrometer.observation.annotation.Observed;
 import io.micrometer.observation.tck.TestObservationRegistry;
-import io.swagger.v3.oas.annotations.Operation;
 import lombok.extern.log4j.Log4j2;
-import org.apache.commons.io.FileUtils;
-import org.junit.jupiter.api.AfterAll;
-import org.junit.jupiter.api.BeforeAll;
 import org.junit.jupiter.api.Test;
 import org.junit.jupiter.api.extension.ExtendWith;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -30,13 +25,7 @@ import org.springframework.security.test.context.support.WithMockUser;
 import org.springframework.test.context.junit.jupiter.SpringExtension;
 import org.springframework.test.web.servlet.MockMvc;
 
-import java.io.File;
-import java.io.IOException;
-import java.lang.reflect.Method;
-import java.util.Arrays;
 import java.util.List;
-import java.util.Map;
-import java.util.TreeMap;
 
 import static io.micrometer.observation.tck.TestObservationRegistryAssert.assertThat;
 import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get;
@@ -99,8 +88,6 @@ public class PrometheusEndpointMvcTest extends AbstractUnitTest {
     @Autowired
     private ViewEndpoint viewEndpoint;
 
-    private static final Map<String, String> metrics = new TreeMap<>(); /* sorted */
-
     @TestConfiguration
     static class ObservationTestConfiguration {
 
@@ -110,16 +97,6 @@ public class PrometheusEndpointMvcTest extends AbstractUnitTest {
         }
     }
 
-    @BeforeAll
-    public static void beforeAll() {
-        FileUtils.deleteQuietly(new File("../metrics.md"));
-    }
-
-    @AfterAll
-    public static void afterAll() throws IOException {
-        saveObservedMetrics(metrics);
-    }
-
     @Test
     public void prometheus_succeeds() throws Exception {
 
@@ -160,7 +137,6 @@ public class PrometheusEndpointMvcTest extends AbstractUnitTest {
             assertThat(registry)
                     .hasObservationWithNameEqualTo(metric);
         }
-        generic_openApiDocs(AccessEndpoint.class);
     }
 
     @Test
@@ -194,7 +170,6 @@ public class PrometheusEndpointMvcTest extends AbstractUnitTest {
             assertThat(registry)
                     .hasObservationWithNameEqualTo(metric);
         }
-        generic_openApiDocs(ContainerEndpoint.class);
     }
 
     @Test
@@ -243,7 +218,6 @@ public class PrometheusEndpointMvcTest extends AbstractUnitTest {
             assertThat(registry)
                     .hasObservationWithNameEqualTo(metric);
         }
-        generic_openApiDocs(DatabaseEndpoint.class);
     }
 
     @Test
@@ -289,7 +263,6 @@ public class PrometheusEndpointMvcTest extends AbstractUnitTest {
             assertThat(registry)
                     .hasObservationWithNameEqualTo(metric);
         }
-        generic_openApiDocs(IdentifierEndpoint.class);
     }
 
     @Test
@@ -329,7 +302,6 @@ public class PrometheusEndpointMvcTest extends AbstractUnitTest {
             assertThat(registry)
                     .hasObservationWithNameEqualTo(metric);
         }
-        generic_openApiDocs(ImageEndpoint.class);
     }
 
     @Test
@@ -346,7 +318,6 @@ public class PrometheusEndpointMvcTest extends AbstractUnitTest {
         /* test */
         assertThat(registry)
                 .hasObservationWithNameEqualTo("dbrepo_license_findall");
-        generic_openApiDocs(LicenseEndpoint.class);
     }
 
     @Test
@@ -385,7 +356,6 @@ public class PrometheusEndpointMvcTest extends AbstractUnitTest {
             assertThat(registry)
                     .hasObservationWithNameEqualTo(metric);
         }
-        generic_openApiDocs(MessageEndpoint.class);
     }
 
     @Test
@@ -419,7 +389,6 @@ public class PrometheusEndpointMvcTest extends AbstractUnitTest {
             assertThat(registry)
                     .hasObservationWithNameEqualTo(metric);
         }
-        generic_openApiDocs(MetadataEndpoint.class);
     }
 
     @Test
@@ -463,7 +432,6 @@ public class PrometheusEndpointMvcTest extends AbstractUnitTest {
             assertThat(registry)
                     .hasObservationWithNameEqualTo(metric);
         }
-        generic_openApiDocs(OntologyEndpoint.class);
     }
 
     @Test
@@ -482,7 +450,6 @@ public class PrometheusEndpointMvcTest extends AbstractUnitTest {
             assertThat(registry)
                     .hasObservationWithNameEqualTo(metric);
         }
-        generic_openApiDocs(ConceptEndpoint.class);
     }
 
     @Test
@@ -501,7 +468,6 @@ public class PrometheusEndpointMvcTest extends AbstractUnitTest {
             assertThat(registry)
                     .hasObservationWithNameEqualTo(metric);
         }
-        generic_openApiDocs(UnitEndpoint.class);
     }
 
     @Test
@@ -563,7 +529,6 @@ public class PrometheusEndpointMvcTest extends AbstractUnitTest {
             assertThat(registry)
                     .hasObservationWithNameEqualTo(metric);
         }
-        generic_openApiDocs(TableEndpoint.class);
     }
 
     @Test
@@ -592,7 +557,6 @@ public class PrometheusEndpointMvcTest extends AbstractUnitTest {
             assertThat(registry)
                     .hasObservationWithNameEqualTo(metric);
         }
-        generic_openApiDocs(UserEndpoint.class);
     }
 
     @Test
@@ -627,16 +591,6 @@ public class PrometheusEndpointMvcTest extends AbstractUnitTest {
             assertThat(registry)
                     .hasObservationWithNameEqualTo(metric);
         }
-        generic_openApiDocs(ViewEndpoint.class);
-    }
-
-    private static void generic_openApiDocs(Class<?> endpoint) {
-        final List<Method> methods = Arrays.stream(endpoint.getMethods())
-                .filter(m -> m.getDeclaringClass().equals(endpoint))
-                .toList();
-        methods.forEach(m -> {
-            metrics.put(m.getDeclaredAnnotation(Observed.class).name(), m.getDeclaredAnnotation(Operation.class).summary());
-        });
     }
 
 }
diff --git a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/service/ContainerServiceUnitTest.java b/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/service/ContainerServiceUnitTest.java
index bb19a404dd..a6fbbf7592 100644
--- a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/service/ContainerServiceUnitTest.java
+++ b/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/service/ContainerServiceUnitTest.java
@@ -1,11 +1,13 @@
 package at.tuwien.service;
 
 import at.tuwien.api.container.CreateContainerDto;
-import at.tuwien.test.AbstractUnitTest;
 import at.tuwien.entities.container.Container;
-import at.tuwien.exception.*;
+import at.tuwien.exception.ContainerAlreadyExistsException;
+import at.tuwien.exception.ContainerNotFoundException;
+import at.tuwien.exception.ImageNotFoundException;
 import at.tuwien.repository.ContainerRepository;
 import at.tuwien.repository.ImageRepository;
+import at.tuwien.test.AbstractUnitTest;
 import lombok.extern.log4j.Log4j2;
 import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Test;
@@ -20,11 +22,11 @@ import org.springframework.test.context.junit.jupiter.SpringExtension;
 
 import java.util.List;
 import java.util.Optional;
+import java.util.UUID;
 
 import static org.junit.jupiter.api.Assertions.assertEquals;
 import static org.junit.jupiter.api.Assertions.assertThrows;
 import static org.mockito.ArgumentMatchers.any;
-import static org.mockito.ArgumentMatchers.anyLong;
 import static org.mockito.Mockito.when;
 
 @Log4j2
@@ -87,7 +89,7 @@ public class ContainerServiceUnitTest extends AbstractUnitTest {
     public void create_imageNotFound_fails() {
         final CreateContainerDto request = CreateContainerDto.builder()
                 .name(CONTAINER_3_NAME)
-                .imageId(9999L)
+                .imageId(UUID.randomUUID())
                 .build();
 
         /* mock */
@@ -169,14 +171,14 @@ public class ContainerServiceUnitTest extends AbstractUnitTest {
         assertEquals(limit, response.size());
     }
 
-    protected void find_generic(Long containerId, Container container) throws ContainerNotFoundException {
+    protected void find_generic(UUID containerId, Container container) throws ContainerNotFoundException {
 
         /* mock */
         if (container != null) {
             when(containerRepository.findById(containerId))
                     .thenReturn(Optional.of(container));
         } else {
-            when(containerRepository.findById(anyLong()))
+            when(containerRepository.findById(any(UUID.class)))
                     .thenReturn(Optional.empty());
         }
 
diff --git a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/service/DataCiteIdentifierServicePersistenceTest.java b/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/service/DataCiteIdentifierServicePersistenceTest.java
index b77bc30d38..adb884ee91 100644
--- a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/service/DataCiteIdentifierServicePersistenceTest.java
+++ b/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/service/DataCiteIdentifierServicePersistenceTest.java
@@ -36,6 +36,7 @@ import org.springframework.web.client.RestClientException;
 import org.springframework.web.client.RestTemplate;
 
 import java.util.List;
+import java.util.UUID;
 
 import static org.junit.jupiter.api.Assertions.*;
 import static org.mockito.ArgumentMatchers.*;
@@ -88,7 +89,7 @@ public class DataCiteIdentifierServicePersistenceTest extends AbstractUnitTest {
         /* test */
         final List<Identifier> response = dataCiteIdentifierService.findAll(null, null, null, null, null);
         assertEquals(7, response.size());
-        for (Long id : List.of(IDENTIFIER_1_ID, IDENTIFIER_2_ID, IDENTIFIER_3_ID, IDENTIFIER_4_ID, IDENTIFIER_5_ID, IDENTIFIER_6_ID, IDENTIFIER_7_ID)) {
+        for (UUID id : List.of(IDENTIFIER_1_ID, IDENTIFIER_2_ID, IDENTIFIER_3_ID, IDENTIFIER_4_ID, IDENTIFIER_5_ID, IDENTIFIER_6_ID, IDENTIFIER_7_ID)) {
             assertTrue(response.stream().map(Identifier::getId).toList().contains(id));
         }
     }
diff --git a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/service/DatabaseServiceUnitTest.java b/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/service/DatabaseServiceUnitTest.java
index 18d037fe45..85829f6ae6 100644
--- a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/service/DatabaseServiceUnitTest.java
+++ b/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/service/DatabaseServiceUnitTest.java
@@ -22,9 +22,11 @@ import org.springframework.test.context.junit.jupiter.SpringExtension;
 
 import java.util.List;
 import java.util.Optional;
+import java.util.UUID;
 
 import static org.junit.jupiter.api.Assertions.*;
-import static org.mockito.ArgumentMatchers.*;
+import static org.mockito.ArgumentMatchers.any;
+import static org.mockito.ArgumentMatchers.eq;
 import static org.mockito.Mockito.*;
 
 @Log4j2
@@ -347,12 +349,12 @@ public class DatabaseServiceUnitTest extends AbstractUnitTest {
     public void find_fails() {
 
         /* mock */
-        when(databaseRepository.findById(anyLong()))
+        when(databaseRepository.findById(any(UUID.class)))
                 .thenReturn(Optional.empty());
 
         /* test */
         assertThrows(DatabaseNotFoundException.class, () -> {
-            databaseService.findById(9999L);
+            databaseService.findById(UUID.randomUUID());
         });
     }
 
diff --git a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/service/IdentifierServicePersistenceTest.java b/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/service/IdentifierServicePersistenceTest.java
index 40fc28fe4d..1cc874293c 100644
--- a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/service/IdentifierServicePersistenceTest.java
+++ b/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/service/IdentifierServicePersistenceTest.java
@@ -1,21 +1,20 @@
 package at.tuwien.service;
 
-import at.tuwien.entities.database.License;
-import at.tuwien.repository.ContainerRepository;
-import at.tuwien.repository.DatabaseRepository;
-import at.tuwien.repository.LicenseRepository;
-import at.tuwien.repository.UserRepository;
-import at.tuwien.test.AbstractUnitTest;
 import at.tuwien.api.database.query.QueryDto;
 import at.tuwien.api.identifier.BibliographyTypeDto;
 import at.tuwien.entities.database.Database;
+import at.tuwien.entities.database.License;
 import at.tuwien.entities.identifier.*;
 import at.tuwien.exception.*;
 import at.tuwien.gateway.DataServiceGateway;
 import at.tuwien.gateway.SearchServiceGateway;
+import at.tuwien.repository.ContainerRepository;
+import at.tuwien.repository.DatabaseRepository;
+import at.tuwien.repository.LicenseRepository;
+import at.tuwien.repository.UserRepository;
+import at.tuwien.test.AbstractUnitTest;
 import lombok.extern.log4j.Log4j2;
 import org.junit.jupiter.api.BeforeEach;
-import org.junit.jupiter.api.Disabled;
 import org.junit.jupiter.api.Test;
 import org.junit.jupiter.api.extension.ExtendWith;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -32,6 +31,7 @@ import org.springframework.transaction.annotation.Transactional;
 import org.springframework.web.client.RestTemplate;
 
 import java.util.List;
+import java.util.UUID;
 
 import static org.junit.jupiter.api.Assertions.*;
 import static org.mockito.ArgumentMatchers.*;
@@ -84,7 +84,7 @@ public class IdentifierServicePersistenceTest extends AbstractUnitTest {
         /* test */
         final List<Identifier> response = identifierService.findAll(null, null, null, null, null);
         assertEquals(7, response.size());
-        for (Long id : List.of(IDENTIFIER_1_ID, IDENTIFIER_2_ID, IDENTIFIER_3_ID, IDENTIFIER_4_ID, IDENTIFIER_5_ID, IDENTIFIER_6_ID, IDENTIFIER_7_ID)) {
+        for (UUID id : List.of(IDENTIFIER_1_ID, IDENTIFIER_2_ID, IDENTIFIER_3_ID, IDENTIFIER_4_ID, IDENTIFIER_5_ID, IDENTIFIER_6_ID, IDENTIFIER_7_ID)) {
             assertTrue(response.stream().map(Identifier::getId).toList().contains(id));
         }
     }
@@ -149,7 +149,7 @@ public class IdentifierServicePersistenceTest extends AbstractUnitTest {
 
         /* test */
         assertThrows(IdentifierNotFoundException.class, () -> {
-            identifierService.find(9999L);
+            identifierService.find(UUID.randomUUID());
         });
     }
 
@@ -173,7 +173,7 @@ public class IdentifierServicePersistenceTest extends AbstractUnitTest {
             QueryNotFoundException, SearchServiceException, SearchServiceConnectionException, ExternalServiceException {
 
         /* mock */
-        when(dataServiceGateway.findQuery(IDENTIFIER_5_DATABASE_ID, IDENTIFIER_5_QUERY_ID))
+        when(dataServiceGateway.findQuery(DATABASE_2_ID, QUERY_2_ID))
                 .thenReturn(QUERY_2_DTO);
         when(searchServiceGateway.update(any(Database.class)))
                 .thenReturn(DATABASE_2_BRIEF_DTO);
@@ -307,7 +307,7 @@ public class IdentifierServicePersistenceTest extends AbstractUnitTest {
             QueryNotFoundException, SearchServiceException, SearchServiceConnectionException, ExternalServiceException {
 
         /* mock */
-        when(dataServiceGateway.findQuery(IDENTIFIER_5_DATABASE_ID, IDENTIFIER_5_QUERY_ID))
+        when(dataServiceGateway.findQuery(DATABASE_2_ID, QUERY_2_ID))
                 .thenReturn(QUERY_2_DTO);
 
         /* test */
@@ -326,7 +326,7 @@ public class IdentifierServicePersistenceTest extends AbstractUnitTest {
         assertEquals(IDENTIFIER_5_DESCRIPTION_1_TYPE, description0.getDescriptionType());
         assertNull(response.getDoi());
         assertEquals(IDENTIFIER_5_PUBLISHER, response.getPublisher());
-        assertEquals(IDENTIFIER_5_DATABASE_ID, response.getDatabase().getId());
+        assertEquals(DATABASE_2_ID, response.getDatabase().getId());
         assertNull(response.getLanguage());
         assertEquals(IDENTIFIER_5_PUBLICATION_YEAR, response.getPublicationYear());
         assertEquals(IDENTIFIER_5_PUBLICATION_MONTH, response.getPublicationMonth());
@@ -439,12 +439,12 @@ public class IdentifierServicePersistenceTest extends AbstractUnitTest {
             ExternalServiceException {
 
         /* mock */
-        when(dataServiceGateway.findQuery(IDENTIFIER_2_DATABASE_ID, IDENTIFIER_2_QUERY_ID))
+        when(dataServiceGateway.findQuery(DATABASE_1_ID, QUERY_1_ID))
                 .thenReturn(QUERY_1_DTO);
 
         /* test */
         final Identifier response = identifierService.save(DATABASE_1, USER_1, IDENTIFIER_2_SAVE_DTO);
-        assertEquals(IDENTIFIER_2_DATABASE_ID, response.getDatabase().getId());
+        assertEquals(DATABASE_1_ID, response.getDatabase().getId());
         assertEquals(IDENTIFIER_2_QUERY, response.getQuery());
         assertEquals(IDENTIFIER_2_QUERY_HASH, response.getQueryHash());
         assertEquals(IDENTIFIER_2_RESULT_HASH, response.getResultHash());
@@ -460,7 +460,7 @@ public class IdentifierServicePersistenceTest extends AbstractUnitTest {
 
         /* test */
         final Identifier response = identifierService.save(DATABASE_1, USER_1, IDENTIFIER_3_SAVE_DTO);
-        assertEquals(IDENTIFIER_3_DATABASE_ID, response.getDatabase().getId());
+        assertEquals(DATABASE_1_ID, response.getDatabase().getId());
         assertEquals(IDENTIFIER_3_QUERY, response.getQuery());
         assertEquals(IDENTIFIER_3_QUERY_HASH, response.getQueryHash());
         assertEquals(IDENTIFIER_3_RESULT_HASH, response.getResultHash());
@@ -476,7 +476,7 @@ public class IdentifierServicePersistenceTest extends AbstractUnitTest {
 
         /* test */
         final Identifier response = identifierService.create(DATABASE_1, USER_1, IDENTIFIER_1_CREATE_DTO);
-        assertEquals(8L, response.getId());
+        assertNotNull(response.getId());
     }
 
     @Test
@@ -487,7 +487,7 @@ public class IdentifierServicePersistenceTest extends AbstractUnitTest {
 
         /* test */
         final Identifier response = identifierService.create(DATABASE_1, USER_1, IDENTIFIER_1_CREATE_WITH_DOI_DTO);
-        assertEquals(8L, response.getId());
+        assertNotNull(response.getId());
         assertEquals(IDENTIFIER_1_DOI, response.getDoi());
     }
 
diff --git a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/service/MessageServiceUnitTest.java b/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/service/MessageServiceUnitTest.java
index d07a5facb8..fb7806f454 100644
--- a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/service/MessageServiceUnitTest.java
+++ b/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/service/MessageServiceUnitTest.java
@@ -18,6 +18,7 @@ import org.springframework.test.context.junit.jupiter.SpringExtension;
 
 import java.util.List;
 import java.util.Optional;
+import java.util.UUID;
 
 import static org.junit.jupiter.api.Assertions.assertEquals;
 import static org.junit.jupiter.api.Assertions.assertThrows;
@@ -88,12 +89,12 @@ public class MessageServiceUnitTest extends AbstractUnitTest {
     public void find_notFound_fails() {
 
         /* mock */
-        when(bannerMessageRepository.findById(anyLong()))
+        when(bannerMessageRepository.findById(any(UUID.class)))
                 .thenReturn(Optional.empty());
 
         /* test */
         assertThrows(MessageNotFoundException.class, () -> {
-            bannerMessageService.find(9999L);
+            bannerMessageService.find(UUID.randomUUID());
         });
     }
 
diff --git a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/service/MetadataServiceUnitTest.java b/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/service/MetadataServiceUnitTest.java
index fa10d09a87..3237d9ab82 100644
--- a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/service/MetadataServiceUnitTest.java
+++ b/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/service/MetadataServiceUnitTest.java
@@ -1,9 +1,5 @@
 package at.tuwien.service;
 
-import at.tuwien.oaipmh.OaiErrorType;
-import at.tuwien.oaipmh.OaiListIdentifiersParameters;
-import at.tuwien.oaipmh.OaiRecordParameters;
-import at.tuwien.test.AbstractUnitTest;
 import at.tuwien.api.crossref.CrossrefDto;
 import at.tuwien.api.orcid.OrcidDto;
 import at.tuwien.api.ror.RorDto;
@@ -13,6 +9,10 @@ import at.tuwien.exception.*;
 import at.tuwien.gateway.CrossrefGateway;
 import at.tuwien.gateway.OrcidGateway;
 import at.tuwien.gateway.RorGateway;
+import at.tuwien.oaipmh.OaiErrorType;
+import at.tuwien.oaipmh.OaiListIdentifiersParameters;
+import at.tuwien.oaipmh.OaiRecordParameters;
+import at.tuwien.test.AbstractUnitTest;
 import com.fasterxml.jackson.databind.DeserializationFeature;
 import com.fasterxml.jackson.databind.ObjectMapper;
 import lombok.extern.log4j.Log4j2;
@@ -29,10 +29,10 @@ import java.io.File;
 import java.io.IOException;
 import java.util.Arrays;
 import java.util.List;
+import java.util.UUID;
 
 import static org.junit.jupiter.api.Assertions.*;
-import static org.junit.jupiter.api.Assertions.assertTrue;
-import static org.mockito.ArgumentMatchers.anyLong;
+import static org.mockito.ArgumentMatchers.any;
 import static org.mockito.ArgumentMatchers.anyString;
 import static org.mockito.Mockito.doThrow;
 import static org.mockito.Mockito.when;
@@ -118,7 +118,7 @@ public class MetadataServiceUnitTest extends AbstractUnitTest {
                 .build();
 
         /* mock */
-        when(identifierService.find(1L))
+        when(identifierService.find(IDENTIFIER_1_ID))
                 .thenReturn(IDENTIFIER_1);
 
         /* test */
@@ -139,7 +139,7 @@ public class MetadataServiceUnitTest extends AbstractUnitTest {
         /* mock */
         doThrow(IdentifierNotFoundException.class)
                 .when(identifierService)
-                .find(anyLong());
+                .find(any(UUID.class));
 
         /* test */
         assertThrows(IdentifierNotFoundException.class, () -> {
diff --git a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/service/TableServicePersistenceTest.java b/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/service/TableServicePersistenceTest.java
index b0efccab9a..e1321689e5 100644
--- a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/service/TableServicePersistenceTest.java
+++ b/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/service/TableServicePersistenceTest.java
@@ -32,6 +32,7 @@ import org.springframework.transaction.annotation.Transactional;
 
 import java.util.List;
 import java.util.Set;
+import java.util.UUID;
 
 import static org.junit.jupiter.api.Assertions.*;
 import static org.mockito.ArgumentMatchers.any;
@@ -155,7 +156,7 @@ public class TableServicePersistenceTest extends AbstractUnitTest {
 
         /* test */
         assertThrows(MalformedException.class, () -> {
-            tableService.findColumnById(TABLE_1, 9999L);
+            tableService.findColumnById(TABLE_1, UUID.randomUUID());
         });
     }
 
diff --git a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/service/ViewServiceUnitTest.java b/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/service/ViewServiceUnitTest.java
index 4ba217a60c..75fab311dd 100644
--- a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/service/ViewServiceUnitTest.java
+++ b/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/service/ViewServiceUnitTest.java
@@ -1,13 +1,13 @@
 package at.tuwien.service;
 
-import at.tuwien.repository.DatabaseRepository;
-import at.tuwien.test.AbstractUnitTest;
 import at.tuwien.api.database.CreateViewDto;
 import at.tuwien.entities.database.Database;
 import at.tuwien.entities.database.View;
 import at.tuwien.exception.*;
 import at.tuwien.gateway.DataServiceGateway;
 import at.tuwien.gateway.SearchServiceGateway;
+import at.tuwien.repository.DatabaseRepository;
+import at.tuwien.test.AbstractUnitTest;
 import lombok.extern.log4j.Log4j2;
 import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Test;
@@ -18,6 +18,7 @@ import org.springframework.boot.test.mock.mockito.MockBean;
 import org.springframework.test.context.junit.jupiter.SpringExtension;
 import org.testcontainers.junit.jupiter.Testcontainers;
 
+import java.util.UUID;
 
 import static org.junit.jupiter.api.Assertions.assertEquals;
 import static org.junit.jupiter.api.Assertions.assertThrows;
@@ -88,7 +89,7 @@ public class ViewServiceUnitTest extends AbstractUnitTest {
 
         /* test */
         assertThrows(ViewNotFoundException.class, () -> {
-            viewService.findById(DATABASE_1, 9999L);
+            viewService.findById(DATABASE_1, UUID.randomUUID());
         });
     }
 
diff --git a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/validator/EndpointValidatorUnitTest.java b/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/validator/EndpointValidatorUnitTest.java
index 8105a7fb89..1e7ce07afd 100644
--- a/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/validator/EndpointValidatorUnitTest.java
+++ b/dbrepo-metadata-service/rest-service/src/test/java/at/tuwien/validator/EndpointValidatorUnitTest.java
@@ -26,10 +26,12 @@ import org.springframework.boot.test.mock.mockito.MockBean;
 import org.springframework.test.context.junit.jupiter.SpringExtension;
 
 import java.util.List;
+import java.util.UUID;
 import java.util.stream.Stream;
 
 import static org.junit.jupiter.api.Assertions.*;
-import static org.mockito.ArgumentMatchers.*;
+import static org.mockito.ArgumentMatchers.any;
+import static org.mockito.ArgumentMatchers.eq;
 import static org.mockito.Mockito.doThrow;
 import static org.mockito.Mockito.when;
 
@@ -176,7 +178,7 @@ public class EndpointValidatorUnitTest extends AbstractUnitTest {
             DatabaseNotFoundException, AccessNotFoundException {
 
         /* mock */
-        when(databaseService.findById(anyLong()))
+        when(databaseService.findById(any(UUID.class)))
                 .thenReturn(DATABASE_3);
 
         /* test */
diff --git a/dbrepo-metadata-service/services/src/main/java/at/tuwien/gateway/DataServiceGateway.java b/dbrepo-metadata-service/services/src/main/java/at/tuwien/gateway/DataServiceGateway.java
index 4ee76c36bf..5bb0303e16 100644
--- a/dbrepo-metadata-service/services/src/main/java/at/tuwien/gateway/DataServiceGateway.java
+++ b/dbrepo-metadata-service/services/src/main/java/at/tuwien/gateway/DataServiceGateway.java
@@ -29,7 +29,7 @@ public interface DataServiceGateway {
      * @throws DataServiceException           The data service responded unexpectedly.
      * @throws DatabaseNotFoundException      Some of the privileged parameters of the given database were not provided by the metadata service.
      */
-    void createAccess(Long databaseId, UUID userId, AccessTypeDto access) throws DataServiceConnectionException,
+    void createAccess(UUID databaseId, UUID userId, AccessTypeDto access) throws DataServiceConnectionException,
             DataServiceException, DatabaseNotFoundException;
 
     /**
@@ -42,7 +42,7 @@ public interface DataServiceGateway {
      * @throws DataServiceException           The data service responded unexpectedly.
      * @throws AccessNotFoundException        Some of the privileged parameters of the given database were not provided by the metadata service.
      */
-    void updateAccess(Long databaseId, UUID userId, AccessTypeDto access) throws DataServiceConnectionException,
+    void updateAccess(UUID databaseId, UUID userId, AccessTypeDto access) throws DataServiceConnectionException,
             DataServiceException, AccessNotFoundException;
 
     /**
@@ -54,7 +54,7 @@ public interface DataServiceGateway {
      * @throws DataServiceException           The data service responded unexpectedly.
      * @throws AccessNotFoundException        Some of the privileged parameters of the given database were not provided by the metadata service.
      */
-    void deleteAccess(Long databaseId, UUID userId) throws DataServiceConnectionException, DataServiceException,
+    void deleteAccess(UUID databaseId, UUID userId) throws DataServiceConnectionException, DataServiceException,
             AccessNotFoundException;
 
     /**
@@ -78,10 +78,10 @@ public interface DataServiceGateway {
      * @throws DataServiceException           The data service responded unexpectedly.
      * @throws DatabaseNotFoundException      Some of the privileged parameters of the given database were not provided by the metadata service.
      */
-    void updateDatabase(Long databaseId, UpdateUserPasswordDto data) throws DataServiceConnectionException,
+    void updateDatabase(UUID databaseId, UpdateUserPasswordDto data) throws DataServiceConnectionException,
             DataServiceException, DatabaseNotFoundException;
 
-    void updateTable(Long databaseId, Long tableId, TableUpdateDto data) throws DataServiceConnectionException,
+    void updateTable(UUID databaseId, UUID tableId, TableUpdateDto data) throws DataServiceConnectionException,
             DataServiceException, DatabaseNotFoundException;
 
     /**
@@ -94,7 +94,7 @@ public interface DataServiceGateway {
      * @throws DatabaseNotFoundException      Some of the privileged parameters of the given database were not provided by the metadata service.
      * @throws TableExistsException           A table with this internal name exists already in the database.
      */
-    void createTable(Long databaseId, CreateTableDto data) throws DataServiceConnectionException, DataServiceException,
+    void createTable(UUID databaseId, CreateTableDto data) throws DataServiceConnectionException, DataServiceException,
             DatabaseNotFoundException, TableExistsException;
 
     /**
@@ -106,7 +106,7 @@ public interface DataServiceGateway {
      * @throws DataServiceException           The data service responded unexpectedly.
      * @throws TableNotFoundException         The given table was not found in the database.
      */
-    void deleteTable(Long databaseId, Long tableId) throws DataServiceConnectionException, DataServiceException,
+    void deleteTable(UUID databaseId, UUID tableId) throws DataServiceConnectionException, DataServiceException,
             TableNotFoundException;
 
     /**
@@ -118,7 +118,7 @@ public interface DataServiceGateway {
      * @throws DataServiceConnectionException The connection to the data service could not be established.
      * @throws DataServiceException           The data service responded unexpectedly.
      */
-    ViewDto createView(Long databaseId, CreateViewDto data) throws DataServiceConnectionException, DataServiceException;
+    ViewDto createView(UUID databaseId, CreateViewDto data) throws DataServiceConnectionException, DataServiceException;
 
     /**
      * Deletes a given view in the given database.
@@ -129,7 +129,7 @@ public interface DataServiceGateway {
      * @throws DataServiceException           The data service responded unexpectedly.
      * @throws ViewNotFoundException          The given view was not found in the database.
      */
-    void deleteView(Long databaseId, Long viewId) throws DataServiceConnectionException, DataServiceException,
+    void deleteView(UUID databaseId, UUID viewId) throws DataServiceConnectionException, DataServiceException,
             ViewNotFoundException;
 
     /**
@@ -142,7 +142,7 @@ public interface DataServiceGateway {
      * @throws DataServiceException           The data service responded unexpectedly.
      * @throws QueryNotFoundException         The given query was not found in the query store.
      */
-    QueryDto findQuery(Long databaseId, Long queryId) throws DataServiceConnectionException, DataServiceException,
+    QueryDto findQuery(UUID databaseId, UUID queryId) throws DataServiceConnectionException, DataServiceException,
             QueryNotFoundException;
 
     /**
@@ -155,7 +155,7 @@ public interface DataServiceGateway {
      * @throws DataServiceException           The data service responded unexpectedly.
      * @throws QueryNotFoundException         The given query was not found in the query store.
      */
-    ExportResourceDto exportQuery(Long databaseId, Long queryId) throws DataServiceConnectionException,
+    ExportResourceDto exportQuery(UUID databaseId, UUID queryId) throws DataServiceConnectionException,
             DataServiceException, QueryNotFoundException;
 
     /**
@@ -167,7 +167,7 @@ public interface DataServiceGateway {
      * @throws DataServiceException           The data service responded unexpectedly.
      * @throws TableNotFoundException         The table was not found in the database.
      */
-    List<TableDto> getTableSchemas(Long databaseId) throws DataServiceConnectionException, DataServiceException,
+    List<TableDto> getTableSchemas(UUID databaseId) throws DataServiceConnectionException, DataServiceException,
             TableNotFoundException;
 
     /**
@@ -179,7 +179,7 @@ public interface DataServiceGateway {
      * @throws DataServiceException           The data service responded unexpectedly.
      * @throws ViewNotFoundException          The table was not found in the database.
      */
-    List<ViewDto> getViewSchemas(Long databaseId) throws DataServiceConnectionException, DataServiceException,
+    List<ViewDto> getViewSchemas(UUID databaseId) throws DataServiceConnectionException, DataServiceException,
             ViewNotFoundException;
 
     /**
@@ -192,6 +192,6 @@ public interface DataServiceGateway {
      * @throws DataServiceException           The data service responded unexpectedly.
      * @throws TableNotFoundException         The table was not found in the database.
      */
-    TableStatisticDto getTableStatistics(Long databaseId, Long tableId) throws DataServiceConnectionException,
+    TableStatisticDto getTableStatistics(UUID databaseId, UUID tableId) throws DataServiceConnectionException,
             DataServiceException, TableNotFoundException;
 }
diff --git a/dbrepo-metadata-service/services/src/main/java/at/tuwien/gateway/SearchServiceGateway.java b/dbrepo-metadata-service/services/src/main/java/at/tuwien/gateway/SearchServiceGateway.java
index 6632a08194..1b3b20485f 100644
--- a/dbrepo-metadata-service/services/src/main/java/at/tuwien/gateway/SearchServiceGateway.java
+++ b/dbrepo-metadata-service/services/src/main/java/at/tuwien/gateway/SearchServiceGateway.java
@@ -4,9 +4,11 @@ import at.tuwien.api.database.DatabaseBriefDto;
 import at.tuwien.entities.database.Database;
 import at.tuwien.exception.*;
 
+import java.util.UUID;
+
 public interface SearchServiceGateway {
 
     DatabaseBriefDto update(Database database) throws SearchServiceConnectionException, SearchServiceException, DatabaseNotFoundException;
 
-    void delete(Long databaseId) throws SearchServiceConnectionException, SearchServiceException, DatabaseNotFoundException;
+    void delete(UUID databaseId) throws SearchServiceConnectionException, SearchServiceException, DatabaseNotFoundException;
 }
diff --git a/dbrepo-metadata-service/services/src/main/java/at/tuwien/gateway/impl/DataServiceGatewayImpl.java b/dbrepo-metadata-service/services/src/main/java/at/tuwien/gateway/impl/DataServiceGatewayImpl.java
index 6ee2ef084b..6439ab47a2 100644
--- a/dbrepo-metadata-service/services/src/main/java/at/tuwien/gateway/impl/DataServiceGatewayImpl.java
+++ b/dbrepo-metadata-service/services/src/main/java/at/tuwien/gateway/impl/DataServiceGatewayImpl.java
@@ -41,7 +41,7 @@ public class DataServiceGatewayImpl implements DataServiceGateway {
     }
 
     @Override
-    public void createAccess(Long databaseId, UUID userId, AccessTypeDto access)
+    public void createAccess(UUID databaseId, UUID userId, AccessTypeDto access)
             throws DataServiceConnectionException, DataServiceException, DatabaseNotFoundException {
         final ResponseEntity<Void> response;
         final String path = "/api/database/" + databaseId + "/access/" + userId;
@@ -66,7 +66,7 @@ public class DataServiceGatewayImpl implements DataServiceGateway {
     }
 
     @Override
-    public void updateAccess(Long databaseId, UUID userId, AccessTypeDto access)
+    public void updateAccess(UUID databaseId, UUID userId, AccessTypeDto access)
             throws DataServiceConnectionException, DataServiceException, AccessNotFoundException {
         final ResponseEntity<Void> response;
         final String path = "/api/database/" + databaseId + "/access/" + userId;
@@ -91,7 +91,7 @@ public class DataServiceGatewayImpl implements DataServiceGateway {
     }
 
     @Override
-    public void deleteAccess(Long databaseId, UUID userId) throws DataServiceConnectionException, DataServiceException,
+    public void deleteAccess(UUID databaseId, UUID userId) throws DataServiceConnectionException, DataServiceException,
             AccessNotFoundException {
         final ResponseEntity<Void> response;
         final String path = "/api/database/" + databaseId + "/access/" + userId;
@@ -140,7 +140,7 @@ public class DataServiceGatewayImpl implements DataServiceGateway {
     }
 
     @Override
-    public void updateDatabase(Long databaseId, UpdateUserPasswordDto data) throws DataServiceConnectionException,
+    public void updateDatabase(UUID databaseId, UpdateUserPasswordDto data) throws DataServiceConnectionException,
             DataServiceException, DatabaseNotFoundException {
         final ResponseEntity<Void> response;
         final String path = "/api/database/" + databaseId;
@@ -164,7 +164,7 @@ public class DataServiceGatewayImpl implements DataServiceGateway {
     }
 
     @Override
-    public void updateTable(Long databaseId, Long tableId, TableUpdateDto data) throws DataServiceConnectionException,
+    public void updateTable(UUID databaseId, UUID tableId, TableUpdateDto data) throws DataServiceConnectionException,
             DataServiceException, DatabaseNotFoundException {
         final ResponseEntity<Void> response;
         final String path = "/api/database/" + databaseId + "/table/" + tableId;
@@ -188,7 +188,7 @@ public class DataServiceGatewayImpl implements DataServiceGateway {
     }
 
     @Override
-    public void createTable(Long databaseId, CreateTableDto data) throws DataServiceConnectionException, DataServiceException,
+    public void createTable(UUID databaseId, CreateTableDto data) throws DataServiceConnectionException, DataServiceException,
             DatabaseNotFoundException, TableExistsException {
         final ResponseEntity<Void> response;
         final String path = "/api/database/" + databaseId + "/table";
@@ -215,7 +215,7 @@ public class DataServiceGatewayImpl implements DataServiceGateway {
     }
 
     @Override
-    public void deleteTable(Long databaseId, Long tableId) throws DataServiceConnectionException, DataServiceException,
+    public void deleteTable(UUID databaseId, UUID tableId) throws DataServiceConnectionException, DataServiceException,
             TableNotFoundException {
         final ResponseEntity<Void> response;
         final String path = "/api/database/" + databaseId + "/table/" + tableId;
@@ -239,7 +239,7 @@ public class DataServiceGatewayImpl implements DataServiceGateway {
     }
 
     @Override
-    public ViewDto createView(Long databaseId, CreateViewDto data) throws DataServiceConnectionException, DataServiceException {
+    public ViewDto createView(UUID databaseId, CreateViewDto data) throws DataServiceConnectionException, DataServiceException {
         final ResponseEntity<ViewDto> response;
         final String path = "/api/database/" + databaseId + "/view";
         log.trace("create view at endpoint {} with path {}", gatewayConfig.getDataEndpoint(), path);
@@ -264,7 +264,7 @@ public class DataServiceGatewayImpl implements DataServiceGateway {
     }
 
     @Override
-    public void deleteView(Long databaseId, Long viewId) throws DataServiceConnectionException, DataServiceException,
+    public void deleteView(UUID databaseId, UUID viewId) throws DataServiceConnectionException, DataServiceException,
             ViewNotFoundException {
         final ResponseEntity<Void> response;
         final String path = "/api/database/" + databaseId + "/view/" + viewId;
@@ -288,7 +288,7 @@ public class DataServiceGatewayImpl implements DataServiceGateway {
     }
 
     @Override
-    public QueryDto findQuery(Long databaseId, Long queryId) throws DataServiceConnectionException, DataServiceException,
+    public QueryDto findQuery(UUID databaseId, UUID queryId) throws DataServiceConnectionException, DataServiceException,
             QueryNotFoundException {
         final ResponseEntity<QueryDto> response;
         final String path = "/api/database/" + databaseId + "/subset/" + queryId;
@@ -316,7 +316,7 @@ public class DataServiceGatewayImpl implements DataServiceGateway {
     }
 
     @Override
-    public ExportResourceDto exportQuery(Long databaseId, Long queryId) throws DataServiceConnectionException,
+    public ExportResourceDto exportQuery(UUID databaseId, UUID queryId) throws DataServiceConnectionException,
             DataServiceException, QueryNotFoundException {
         final ResponseEntity<ExportResourceDto> response;
         final String path = "/api/database/" + databaseId + "/subset/" + queryId;
@@ -341,7 +341,7 @@ public class DataServiceGatewayImpl implements DataServiceGateway {
     }
 
     @Override
-    public List<TableDto> getTableSchemas(Long databaseId) throws DataServiceConnectionException, DataServiceException,
+    public List<TableDto> getTableSchemas(UUID databaseId) throws DataServiceConnectionException, DataServiceException,
             TableNotFoundException {
         final ResponseEntity<TableDto[]> response;
         final String path = "/api/database/" + databaseId + "/table";
@@ -372,7 +372,7 @@ public class DataServiceGatewayImpl implements DataServiceGateway {
     }
 
     @Override
-    public List<ViewDto> getViewSchemas(Long databaseId) throws DataServiceConnectionException, DataServiceException,
+    public List<ViewDto> getViewSchemas(UUID databaseId) throws DataServiceConnectionException, DataServiceException,
             ViewNotFoundException {
         final ResponseEntity<ViewDto[]> response;
         final String path = "/api/database/" + databaseId + "/view";
@@ -403,7 +403,7 @@ public class DataServiceGatewayImpl implements DataServiceGateway {
     }
 
     @Override
-    public TableStatisticDto getTableStatistics(Long databaseId, Long tableId) throws DataServiceConnectionException,
+    public TableStatisticDto getTableStatistics(UUID databaseId, UUID tableId) throws DataServiceConnectionException,
             DataServiceException, TableNotFoundException {
         final ResponseEntity<TableStatisticDto> response;
         final String path = "/api/database/" + databaseId + "/table/" + tableId + "/statistic";
diff --git a/dbrepo-metadata-service/services/src/main/java/at/tuwien/gateway/impl/SearchServiceGatewayImpl.java b/dbrepo-metadata-service/services/src/main/java/at/tuwien/gateway/impl/SearchServiceGatewayImpl.java
index 503cad47ec..89b4dff5c7 100644
--- a/dbrepo-metadata-service/services/src/main/java/at/tuwien/gateway/impl/SearchServiceGatewayImpl.java
+++ b/dbrepo-metadata-service/services/src/main/java/at/tuwien/gateway/impl/SearchServiceGatewayImpl.java
@@ -18,6 +18,8 @@ import org.springframework.web.client.HttpServerErrorException;
 import org.springframework.web.client.ResourceAccessException;
 import org.springframework.web.client.RestTemplate;
 
+import java.util.UUID;
+
 @Log4j2
 @Service
 public class SearchServiceGatewayImpl implements SearchServiceGateway {
@@ -64,7 +66,7 @@ public class SearchServiceGatewayImpl implements SearchServiceGateway {
     }
 
     @Override
-    public void delete(Long databaseId) throws SearchServiceConnectionException, SearchServiceException, DatabaseNotFoundException {
+    public void delete(UUID databaseId) throws SearchServiceConnectionException, SearchServiceException, DatabaseNotFoundException {
         final ResponseEntity<Void> response;
         final String path = "/api/search/database/" + databaseId;
         log.trace("delete database at endpoint {} with path {}", gatewayConfig.getSearchEndpoint(), path);
diff --git a/dbrepo-metadata-service/services/src/main/java/at/tuwien/service/BannerMessageService.java b/dbrepo-metadata-service/services/src/main/java/at/tuwien/service/BannerMessageService.java
index 3be407e6b2..a7973b6171 100644
--- a/dbrepo-metadata-service/services/src/main/java/at/tuwien/service/BannerMessageService.java
+++ b/dbrepo-metadata-service/services/src/main/java/at/tuwien/service/BannerMessageService.java
@@ -6,6 +6,7 @@ import at.tuwien.entities.maintenance.BannerMessage;
 import at.tuwien.exception.MessageNotFoundException;
 
 import java.util.List;
+import java.util.UUID;
 
 public interface BannerMessageService {
 
@@ -30,7 +31,7 @@ public interface BannerMessageService {
      * @return The message, if successful.
      * @throws MessageNotFoundException The message was not found in the metadata database.
      */
-    BannerMessage find(Long id) throws MessageNotFoundException;
+    BannerMessage find(UUID id) throws MessageNotFoundException;
 
     /**
      * Creates a new maintenance message in the metadata database.
diff --git a/dbrepo-metadata-service/services/src/main/java/at/tuwien/service/ContainerService.java b/dbrepo-metadata-service/services/src/main/java/at/tuwien/service/ContainerService.java
index 9aa2dc6c89..d559b5134d 100644
--- a/dbrepo-metadata-service/services/src/main/java/at/tuwien/service/ContainerService.java
+++ b/dbrepo-metadata-service/services/src/main/java/at/tuwien/service/ContainerService.java
@@ -2,9 +2,12 @@ package at.tuwien.service;
 
 import at.tuwien.api.container.CreateContainerDto;
 import at.tuwien.entities.container.Container;
-import at.tuwien.exception.*;
+import at.tuwien.exception.ContainerAlreadyExistsException;
+import at.tuwien.exception.ContainerNotFoundException;
+import at.tuwien.exception.ImageNotFoundException;
 
 import java.util.List;
+import java.util.UUID;
 
 public interface ContainerService {
 
@@ -34,7 +37,7 @@ public interface ContainerService {
      * @return The container object, if successful.
      * @throws ContainerNotFoundException The container was not found in the metadata database.
      */
-    Container find(Long id) throws ContainerNotFoundException;
+    Container find(UUID id) throws ContainerNotFoundException;
 
     /**
      * Retrieve a list of all containers from the metadata database
diff --git a/dbrepo-metadata-service/services/src/main/java/at/tuwien/service/DatabaseService.java b/dbrepo-metadata-service/services/src/main/java/at/tuwien/service/DatabaseService.java
index 4e3765fd6e..0d56952073 100644
--- a/dbrepo-metadata-service/services/src/main/java/at/tuwien/service/DatabaseService.java
+++ b/dbrepo-metadata-service/services/src/main/java/at/tuwien/service/DatabaseService.java
@@ -54,7 +54,7 @@ public interface DatabaseService {
      * @return The database, if successful.
      * @throws DatabaseNotFoundException The database was not found in the metadata database.
      */
-    Database findById(Long databaseId) throws DatabaseNotFoundException;
+    Database findById(UUID databaseId) throws DatabaseNotFoundException;
 
     /**
      * Creates a new database with minimal metadata in the metadata database and creates a new database on the container.
diff --git a/dbrepo-metadata-service/services/src/main/java/at/tuwien/service/IdentifierService.java b/dbrepo-metadata-service/services/src/main/java/at/tuwien/service/IdentifierService.java
index 47183700f9..605ded7d37 100644
--- a/dbrepo-metadata-service/services/src/main/java/at/tuwien/service/IdentifierService.java
+++ b/dbrepo-metadata-service/services/src/main/java/at/tuwien/service/IdentifierService.java
@@ -12,6 +12,7 @@ import org.springframework.core.io.InputStreamResource;
 import org.springframework.stereotype.Service;
 
 import java.util.List;
+import java.util.UUID;
 
 @Service
 public interface IdentifierService {
@@ -29,7 +30,7 @@ public interface IdentifierService {
      * @param databaseId The database id.
      * @return The list of identifiers.
      */
-    List<Identifier> findAll(Long databaseId);
+    List<Identifier> findAll(UUID databaseId);
 
     /**
      * Finds an identifier by given id.
@@ -38,7 +39,7 @@ public interface IdentifierService {
      * @return The identifier, if successful.
      * @throws IdentifierNotFoundException The identifier does not exist.
      */
-    Identifier find(Long id) throws IdentifierNotFoundException;
+    Identifier find(UUID id) throws IdentifierNotFoundException;
 
     /**
      * Finds an identifier by given doi.
@@ -56,7 +57,7 @@ public interface IdentifierService {
      * @param queryId    The query id.
      * @return The list of identifiers.
      */
-    List<Identifier> findByDatabaseIdAndQueryId(Long databaseId, Long queryId);
+    List<Identifier> findByDatabaseIdAndQueryId(UUID databaseId, UUID queryId);
 
     /**
      * Finds all identifiers in the metadata database which are identifying databases.
@@ -83,7 +84,7 @@ public interface IdentifierService {
      * @param tableId    Optional. The table id.
      * @return The list of identifiers.
      */
-    List<Identifier> findAll(IdentifierTypeDto type, Long databaseId, Long queryId, Long viewId, Long tableId);
+    List<Identifier> findAll(IdentifierTypeDto type, UUID databaseId, UUID queryId, UUID viewId, UUID tableId);
 
     /**
      * Publishes a draft identifier with DataCite.
@@ -95,7 +96,6 @@ public interface IdentifierService {
      * @throws SearchServiceConnectionException
      * @throws MalformedException
      * @throws DataServiceConnectionException
-     * @throws IdentifierNotFoundException
      */
     Identifier publish(Identifier identifier) throws SearchServiceException, DatabaseNotFoundException,
             SearchServiceConnectionException, MalformedException, DataServiceConnectionException,
diff --git a/dbrepo-metadata-service/services/src/main/java/at/tuwien/service/ImageService.java b/dbrepo-metadata-service/services/src/main/java/at/tuwien/service/ImageService.java
index cc51082d65..c5f353c7a1 100644
--- a/dbrepo-metadata-service/services/src/main/java/at/tuwien/service/ImageService.java
+++ b/dbrepo-metadata-service/services/src/main/java/at/tuwien/service/ImageService.java
@@ -9,6 +9,7 @@ import at.tuwien.exception.ImageNotFoundException;
 
 import java.security.Principal;
 import java.util.List;
+import java.util.UUID;
 
 public interface ImageService {
 
@@ -25,7 +26,7 @@ public interface ImageService {
      * @param imageId The image id.
      * @return The image, if successful.
      */
-    ContainerImage find(Long imageId) throws ImageNotFoundException;
+    ContainerImage find(UUID imageId) throws ImageNotFoundException;
 
     /**
      * Creates a new container image in the metadata database.
diff --git a/dbrepo-metadata-service/services/src/main/java/at/tuwien/service/OntologyService.java b/dbrepo-metadata-service/services/src/main/java/at/tuwien/service/OntologyService.java
index 6755a64952..c8e4c70676 100644
--- a/dbrepo-metadata-service/services/src/main/java/at/tuwien/service/OntologyService.java
+++ b/dbrepo-metadata-service/services/src/main/java/at/tuwien/service/OntologyService.java
@@ -7,6 +7,7 @@ import at.tuwien.exception.OntologyNotFoundException;
 
 import java.security.Principal;
 import java.util.List;
+import java.util.UUID;
 
 public interface OntologyService {
 
@@ -31,7 +32,7 @@ public interface OntologyService {
      * @return The ontology, if successful.
      * @throws OntologyNotFoundException The ontology was not found in the metadata database.
      */
-    Ontology find(Long ontologyId) throws OntologyNotFoundException;
+    Ontology find(UUID ontologyId) throws OntologyNotFoundException;
 
     Ontology find(String entityUri) throws OntologyNotFoundException;
 
diff --git a/dbrepo-metadata-service/services/src/main/java/at/tuwien/service/TableService.java b/dbrepo-metadata-service/services/src/main/java/at/tuwien/service/TableService.java
index c0880c07dc..2edea6ebeb 100644
--- a/dbrepo-metadata-service/services/src/main/java/at/tuwien/service/TableService.java
+++ b/dbrepo-metadata-service/services/src/main/java/at/tuwien/service/TableService.java
@@ -9,6 +9,7 @@ import at.tuwien.entities.database.table.columns.TableColumn;
 import at.tuwien.exception.*;
 
 import java.security.Principal;
+import java.util.UUID;
 
 public interface TableService {
 
@@ -19,7 +20,7 @@ public interface TableService {
      * @param tableId  The table id.
      * @return The table, if successful.
      */
-    Table findById(Database database, Long tableId) throws TableNotFoundException, DatabaseNotFoundException;
+    Table findById(Database database, UUID tableId) throws TableNotFoundException, DatabaseNotFoundException;
 
     /**
      * Find a table in the metadata database by database id and table name.
@@ -57,7 +58,7 @@ public interface TableService {
     TableColumn update(TableColumn column, ColumnSemanticsUpdateDto updateDto) throws DataServiceException,
             DataServiceConnectionException, DatabaseNotFoundException, SearchServiceException, SearchServiceConnectionException, MalformedException, OntologyNotFoundException, SemanticEntityNotFoundException;
 
-    TableColumn findColumnById(Table table, Long columnId) throws MalformedException;
+    TableColumn findColumnById(Table table, UUID columnId) throws MalformedException;
 
     void updateStatistics(Table table) throws SearchServiceException, DatabaseNotFoundException, SearchServiceConnectionException, MalformedException, TableNotFoundException, DataServiceException, DataServiceConnectionException;
 }
diff --git a/dbrepo-metadata-service/services/src/main/java/at/tuwien/service/ViewService.java b/dbrepo-metadata-service/services/src/main/java/at/tuwien/service/ViewService.java
index 4d183f1cc4..a5769ea986 100644
--- a/dbrepo-metadata-service/services/src/main/java/at/tuwien/service/ViewService.java
+++ b/dbrepo-metadata-service/services/src/main/java/at/tuwien/service/ViewService.java
@@ -8,6 +8,7 @@ import at.tuwien.entities.user.User;
 import at.tuwien.exception.*;
 
 import java.util.List;
+import java.util.UUID;
 
 public interface ViewService {
 
@@ -18,7 +19,7 @@ public interface ViewService {
      * @param viewId   The view id.
      * @return The view, if successful.
      */
-    View findById(Database database, Long viewId) throws ViewNotFoundException;
+    View findById(Database database, UUID viewId) throws ViewNotFoundException;
 
     /**
      * Find all views by database id.
@@ -50,7 +51,6 @@ public interface ViewService {
      * @throws DatabaseNotFoundException
      * @throws SearchServiceException
      * @throws SearchServiceConnectionException
-     * @throws ViewNotFoundException
      */
     View create(Database database, User user, CreateViewDto data) throws MalformedException, DataServiceException,
             DataServiceConnectionException, DatabaseNotFoundException, SearchServiceException,
diff --git a/dbrepo-metadata-service/services/src/main/java/at/tuwien/service/impl/BannerMessageServiceImpl.java b/dbrepo-metadata-service/services/src/main/java/at/tuwien/service/impl/BannerMessageServiceImpl.java
index ac46523250..d75d384b3c 100644
--- a/dbrepo-metadata-service/services/src/main/java/at/tuwien/service/impl/BannerMessageServiceImpl.java
+++ b/dbrepo-metadata-service/services/src/main/java/at/tuwien/service/impl/BannerMessageServiceImpl.java
@@ -13,6 +13,7 @@ import org.springframework.stereotype.Service;
 
 import java.util.List;
 import java.util.Optional;
+import java.util.UUID;
 
 @Log4j2
 @Service
@@ -39,7 +40,7 @@ public class BannerMessageServiceImpl implements BannerMessageService {
     }
 
     @Override
-    public BannerMessage find(Long id) throws MessageNotFoundException {
+    public BannerMessage find(UUID id) throws MessageNotFoundException {
         final Optional<BannerMessage> optional = bannerMessageRepository.findById(id);
         if (optional.isEmpty()) {
             log.error("Failed to find banner message with id {}", id);
diff --git a/dbrepo-metadata-service/services/src/main/java/at/tuwien/service/impl/ContainerServiceImpl.java b/dbrepo-metadata-service/services/src/main/java/at/tuwien/service/impl/ContainerServiceImpl.java
index 2a3c321536..d92b6c17dc 100644
--- a/dbrepo-metadata-service/services/src/main/java/at/tuwien/service/impl/ContainerServiceImpl.java
+++ b/dbrepo-metadata-service/services/src/main/java/at/tuwien/service/impl/ContainerServiceImpl.java
@@ -19,6 +19,7 @@ import org.springframework.transaction.annotation.Transactional;
 
 import java.util.List;
 import java.util.Optional;
+import java.util.UUID;
 
 @Log4j2
 @Service
@@ -81,7 +82,7 @@ public class ContainerServiceImpl implements ContainerService {
 
     @Override
     @Transactional
-    public Container find(Long id) throws ContainerNotFoundException {
+    public Container find(UUID id) throws ContainerNotFoundException {
         final Optional<Container> container = containerRepository.findById(id);
         if (container.isEmpty()) {
             log.error("Failed to find container with id {} in metadata database", id);
diff --git a/dbrepo-metadata-service/services/src/main/java/at/tuwien/service/impl/DataCiteIdentifierServiceImpl.java b/dbrepo-metadata-service/services/src/main/java/at/tuwien/service/impl/DataCiteIdentifierServiceImpl.java
index b4e42a67e1..0c8ce27d12 100644
--- a/dbrepo-metadata-service/services/src/main/java/at/tuwien/service/impl/DataCiteIdentifierServiceImpl.java
+++ b/dbrepo-metadata-service/services/src/main/java/at/tuwien/service/impl/DataCiteIdentifierServiceImpl.java
@@ -33,6 +33,7 @@ import org.springframework.web.client.RestClientException;
 import org.springframework.web.client.RestTemplate;
 
 import java.util.List;
+import java.util.UUID;
 
 @Slf4j
 @Primary
@@ -64,7 +65,7 @@ public class DataCiteIdentifierServiceImpl implements IdentifierService {
 
     @Override
     @Transactional(readOnly = true)
-    public List<Identifier> findAll(IdentifierTypeDto type, Long databaseId, Long queryId, Long viewId, Long tableId) {
+    public List<Identifier> findAll(IdentifierTypeDto type, UUID databaseId, UUID queryId, UUID viewId, UUID tableId) {
         return identifierService.findAll(type, databaseId, queryId, viewId, tableId);
     }
 
@@ -79,7 +80,7 @@ public class DataCiteIdentifierServiceImpl implements IdentifierService {
 
     @Override
     @Transactional(readOnly = true)
-    public List<Identifier> findByDatabaseIdAndQueryId(Long databaseId, Long queryId) {
+    public List<Identifier> findByDatabaseIdAndQueryId(UUID databaseId, UUID queryId) {
         return identifierService.findByDatabaseIdAndQueryId(databaseId, queryId);
     }
 
@@ -167,13 +168,13 @@ public class DataCiteIdentifierServiceImpl implements IdentifierService {
     }
 
     @Override
-    public List<Identifier> findAll(Long databaseId) {
+    public List<Identifier> findAll(UUID databaseId) {
         return identifierService.findAll(databaseId);
     }
 
     @Override
     @Transactional(readOnly = true)
-    public Identifier find(Long identifierId) throws IdentifierNotFoundException {
+    public Identifier find(UUID identifierId) throws IdentifierNotFoundException {
         return identifierService.find(identifierId);
     }
 
diff --git a/dbrepo-metadata-service/services/src/main/java/at/tuwien/service/impl/DatabaseServiceImpl.java b/dbrepo-metadata-service/services/src/main/java/at/tuwien/service/impl/DatabaseServiceImpl.java
index 8b4c73fb2f..cc2da3c374 100644
--- a/dbrepo-metadata-service/services/src/main/java/at/tuwien/service/impl/DatabaseServiceImpl.java
+++ b/dbrepo-metadata-service/services/src/main/java/at/tuwien/service/impl/DatabaseServiceImpl.java
@@ -84,7 +84,7 @@ public class DatabaseServiceImpl implements DatabaseService {
 
     @Override
     @Transactional(readOnly = true)
-    public Database findById(Long id) throws DatabaseNotFoundException {
+    public Database findById(UUID id) throws DatabaseNotFoundException {
         final Optional<Database> database = databaseRepository.findById(id);
         if (database.isEmpty()) {
             log.error("Failed to find database with id {} in metadata database", id);
diff --git a/dbrepo-metadata-service/services/src/main/java/at/tuwien/service/impl/IdentifierServiceImpl.java b/dbrepo-metadata-service/services/src/main/java/at/tuwien/service/impl/IdentifierServiceImpl.java
index 96b8bd8396..b1d1f45932 100644
--- a/dbrepo-metadata-service/services/src/main/java/at/tuwien/service/impl/IdentifierServiceImpl.java
+++ b/dbrepo-metadata-service/services/src/main/java/at/tuwien/service/impl/IdentifierServiceImpl.java
@@ -31,10 +31,7 @@ import org.thymeleaf.context.Context;
 import org.thymeleaf.exceptions.TemplateInputException;
 
 import java.nio.charset.Charset;
-import java.util.LinkedList;
-import java.util.List;
-import java.util.Objects;
-import java.util.Optional;
+import java.util.*;
 import java.util.stream.Stream;
 
 @Slf4j
@@ -69,13 +66,13 @@ public class IdentifierServiceImpl implements IdentifierService {
     }
 
     @Override
-    public List<Identifier> findAll(Long databaseId) {
+    public List<Identifier> findAll(UUID databaseId) {
         return identifierRepository.findByDatabaseId(databaseId);
     }
 
     @Override
     @Transactional(readOnly = true)
-    public Identifier find(Long identifierId) throws IdentifierNotFoundException {
+    public Identifier find(UUID identifierId) throws IdentifierNotFoundException {
         final Optional<Identifier> optional = identifierRepository.findById(identifierId);
         if (optional.isEmpty()) {
             log.error("Failed to find identifier with id: {}", identifierId);
@@ -97,7 +94,7 @@ public class IdentifierServiceImpl implements IdentifierService {
 
     @Override
     @Transactional(readOnly = true)
-    public List<Identifier> findByDatabaseIdAndQueryId(Long databaseId, Long queryId) {
+    public List<Identifier> findByDatabaseIdAndQueryId(UUID databaseId, UUID queryId) {
         return identifierRepository.findByDatabaseIdAndQueryId(databaseId, queryId);
     }
 
@@ -113,7 +110,7 @@ public class IdentifierServiceImpl implements IdentifierService {
 
     @Override
     @Transactional(readOnly = true)
-    public List<Identifier> findAll(IdentifierTypeDto type, Long databaseId, Long queryId, Long viewId, Long tableId) {
+    public List<Identifier> findAll(IdentifierTypeDto type, UUID databaseId, UUID queryId, UUID viewId, UUID tableId) {
         final List<Identifier> identifiers = this.identifierRepository.findAll();
         log.trace("found {} identifiers before applying filter(s)", identifiers.size());
         Stream<Identifier> stream = identifiers.stream();
diff --git a/dbrepo-metadata-service/services/src/main/java/at/tuwien/service/impl/ImageServiceImpl.java b/dbrepo-metadata-service/services/src/main/java/at/tuwien/service/impl/ImageServiceImpl.java
index 84fdffcf43..b82c8ca382 100644
--- a/dbrepo-metadata-service/services/src/main/java/at/tuwien/service/impl/ImageServiceImpl.java
+++ b/dbrepo-metadata-service/services/src/main/java/at/tuwien/service/impl/ImageServiceImpl.java
@@ -19,6 +19,7 @@ import org.springframework.transaction.annotation.Transactional;
 import java.security.Principal;
 import java.util.List;
 import java.util.Optional;
+import java.util.UUID;
 
 @Slf4j
 @Service
@@ -41,7 +42,7 @@ public class ImageServiceImpl implements ImageService {
 
     @Override
     @Transactional
-    public ContainerImage find(Long imageId) throws ImageNotFoundException {
+    public ContainerImage find(UUID imageId) throws ImageNotFoundException {
         final Optional<ContainerImage> image = imageRepository.findById(imageId);
         if (image.isEmpty()) {
             log.error("Failed to find image with id {}", imageId);
diff --git a/dbrepo-metadata-service/services/src/main/java/at/tuwien/service/impl/MetadataServiceImpl.java b/dbrepo-metadata-service/services/src/main/java/at/tuwien/service/impl/MetadataServiceImpl.java
index 14c621e2f9..1b6051f543 100644
--- a/dbrepo-metadata-service/services/src/main/java/at/tuwien/service/impl/MetadataServiceImpl.java
+++ b/dbrepo-metadata-service/services/src/main/java/at/tuwien/service/impl/MetadataServiceImpl.java
@@ -28,6 +28,7 @@ import org.thymeleaf.context.Context;
 import java.time.Instant;
 import java.util.List;
 import java.util.Optional;
+import java.util.UUID;
 
 @Slf4j
 @Service
@@ -97,7 +98,7 @@ public class MetadataServiceImpl implements MetadataService {
         if (parameters.getIdentifier().startsWith("doi")) {
             identifier = identifierService.findByDoi(parameters.getIdentifier().substring(4));
         } else if (parameters.getIdentifier().startsWith("oai")) {
-            identifier = identifierService.find(Long.parseLong(parameters.getIdentifier().substring(4)));
+            identifier = identifierService.find(UUID.fromString(parameters.getIdentifier().substring(4)));
         } else {
             final String prefix = parameters.getIdentifier().substring(0, 3);
             log.error("Invalid prefix: {}", prefix);
diff --git a/dbrepo-metadata-service/services/src/main/java/at/tuwien/service/impl/OntologyServiceImpl.java b/dbrepo-metadata-service/services/src/main/java/at/tuwien/service/impl/OntologyServiceImpl.java
index 3f242914e9..d40239a06e 100644
--- a/dbrepo-metadata-service/services/src/main/java/at/tuwien/service/impl/OntologyServiceImpl.java
+++ b/dbrepo-metadata-service/services/src/main/java/at/tuwien/service/impl/OntologyServiceImpl.java
@@ -17,6 +17,7 @@ import java.net.URISyntaxException;
 import java.security.Principal;
 import java.util.List;
 import java.util.Optional;
+import java.util.UUID;
 
 @Log4j2
 @Service
@@ -45,7 +46,7 @@ public class OntologyServiceImpl implements OntologyService {
     }
 
     @Override
-    public Ontology find(Long id) throws OntologyNotFoundException {
+    public Ontology find(UUID id) throws OntologyNotFoundException {
         final Optional<Ontology> optional = ontologyRepository.findById(id);
         if (optional.isEmpty()) {
             log.error("Failed to find ontology with id {}", id);
diff --git a/dbrepo-metadata-service/services/src/main/java/at/tuwien/service/impl/TableServiceImpl.java b/dbrepo-metadata-service/services/src/main/java/at/tuwien/service/impl/TableServiceImpl.java
index da92fb7ef5..01c0c990b7 100644
--- a/dbrepo-metadata-service/services/src/main/java/at/tuwien/service/impl/TableServiceImpl.java
+++ b/dbrepo-metadata-service/services/src/main/java/at/tuwien/service/impl/TableServiceImpl.java
@@ -25,10 +25,7 @@ import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
 import java.security.Principal;
-import java.util.LinkedList;
-import java.util.List;
-import java.util.Map;
-import java.util.Optional;
+import java.util.*;
 
 @Log4j2
 @Service
@@ -62,7 +59,7 @@ public class TableServiceImpl implements TableService {
 
     @Override
     @Transactional(readOnly = true)
-    public Table findById(Database database, Long tableId) throws TableNotFoundException {
+    public Table findById(Database database, UUID tableId) throws TableNotFoundException {
         final Optional<Table> table = database.getTables()
                 .stream()
                 .filter(t -> t.getId().equals(tableId))
@@ -265,7 +262,7 @@ public class TableServiceImpl implements TableService {
 
     @Override
     @Transactional(readOnly = true)
-    public TableColumn findColumnById(Table table, Long columnId) throws MalformedException {
+    public TableColumn findColumnById(Table table, UUID columnId) throws MalformedException {
         final Optional<TableColumn> optional = table.getColumns()
                 .stream()
                 .filter(c -> c.getId().equals(columnId))
diff --git a/dbrepo-metadata-service/services/src/main/java/at/tuwien/service/impl/ViewServiceImpl.java b/dbrepo-metadata-service/services/src/main/java/at/tuwien/service/impl/ViewServiceImpl.java
index 8ca688b1ed..9f49e28344 100644
--- a/dbrepo-metadata-service/services/src/main/java/at/tuwien/service/impl/ViewServiceImpl.java
+++ b/dbrepo-metadata-service/services/src/main/java/at/tuwien/service/impl/ViewServiceImpl.java
@@ -22,6 +22,7 @@ import java.nio.charset.StandardCharsets;
 import java.util.LinkedList;
 import java.util.List;
 import java.util.Optional;
+import java.util.UUID;
 
 @Log4j2
 @Service
@@ -42,7 +43,7 @@ public class ViewServiceImpl implements ViewService {
     }
 
     @Override
-    public View findById(Database database, Long viewId) throws ViewNotFoundException {
+    public View findById(Database database, UUID viewId) throws ViewNotFoundException {
         final Optional<View> optional = database.getViews()
                 .stream()
                 .filter(v -> v.getId().equals(viewId))
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 1c88f1775a..f49f51bb18 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
@@ -6,8 +6,6 @@ import at.tuwien.api.amqp.ExchangeDto;
 import at.tuwien.api.amqp.GrantVirtualHostPermissionsDto;
 import at.tuwien.api.amqp.QueueDto;
 import at.tuwien.api.auth.CreateUserDto;
-import at.tuwien.api.auth.LoginRequestDto;
-import at.tuwien.api.auth.RefreshTokenRequestDto;
 import at.tuwien.api.container.ContainerBriefDto;
 import at.tuwien.api.container.ContainerDto;
 import at.tuwien.api.container.image.*;
@@ -66,20 +64,15 @@ import at.tuwien.entities.maintenance.BannerMessageType;
 import at.tuwien.entities.semantics.Ontology;
 import at.tuwien.entities.user.User;
 import at.tuwien.test.utils.ArrayUtils;
-import org.apache.commons.io.FileUtils;
-import org.apache.commons.lang3.StringUtils;
 import org.springframework.core.io.InputStreamResource;
 import org.springframework.security.authentication.UsernamePasswordAuthenticationToken;
 import org.springframework.security.core.GrantedAuthority;
 import org.springframework.security.core.authority.SimpleGrantedAuthority;
 import org.springframework.security.core.userdetails.UserDetails;
 
-import java.io.File;
-import java.io.IOException;
 import java.io.InputStream;
 import java.math.BigDecimal;
 import java.math.BigInteger;
-import java.nio.charset.Charset;
 import java.security.Principal;
 import java.time.Instant;
 import java.time.LocalDate;
@@ -279,11 +272,7 @@ public abstract class BaseTest {
             .scope(TOKEN_ACCESS_SCOPE)
             .build();
 
-    public static final RefreshTokenRequestDto REFRESH_TOKEN_REQUEST_DTO = RefreshTokenRequestDto.builder()
-            .refreshToken("ey.yee.skrr")
-            .build();
-
-    public static final Long CONCEPT_1_ID = 1L;
+    public static final UUID CONCEPT_1_ID = UUID.fromString("8cabc011-4bdf-44d4-9d33-b2648e2ddbf1");
     public static final String CONCEPT_1_NAME = "precipitation";
     public static final String CONCEPT_1_URI = "http://www.wikidata.org/entity/Q25257";
     public static final String CONCEPT_1_DESCRIPTION = null;
@@ -323,7 +312,7 @@ public abstract class BaseTest {
             .label(CONCEPT_1_NAME)
             .build();
 
-    public static final Long CONCEPT_2_ID = 2L;
+    public static final UUID CONCEPT_2_ID = UUID.fromString("c5cf9914-15c1-4813-af11-eb2a070d59a9");
     public static final String CONCEPT_2_NAME = "FAIR data";
     public static final String CONCEPT_2_URI = "http://www.wikidata.org/entity/Q29032648";
     public static final String CONCEPT_2_DESCRIPTION = "data compliant with the terms of the FAIR Data Principles";
@@ -357,7 +346,7 @@ public abstract class BaseTest {
             .created(CONCEPT_2_CREATED)
             .build();
 
-    public static final Long UNIT_1_ID = 1L;
+    public static final UUID UNIT_1_ID = UUID.fromString("1fee60e4-42f8-4883-85a8-e282fddf6a62");
     public static final String UNIT_1_NAME = "millimetre";
     public static final String UNIT_1_URI = "http://www.ontology-of-units-of-measure.org/resource/om-2/millimetre";
     public static final String UNIT_1_DESCRIPTION = "The millimetre is a unit of length defined as 1.0e-3 metre.";
@@ -397,7 +386,7 @@ public abstract class BaseTest {
             .label(UNIT_1_NAME)
             .build();
 
-    public static final Long UNIT_2_ID = 2L;
+    public static final UUID UNIT_2_ID = UUID.fromString("d88591a9-5171-4b12-8381-bcff1cfe7442");
     public static final String UNIT_2_NAME = "tonne";
     public static final String UNIT_2_URI = "http://www.ontology-of-units-of-measure.org/resource/om-2/tonne";
     public static final String UNIT_2_DESCRIPTION = "The tonne is a unit of mass defined as 1000 kilogram.";
@@ -446,11 +435,6 @@ public abstract class BaseTest {
     @SuppressWarnings("java:S2068")
     public static final String USER_LOCAL_ADMIN_MARIADB_PASSWORD = "*440BA4FD1A87A0999647DB67C0EE258198B247BA";
 
-    public static final LoginRequestDto USER_LOCAL_ADMIN_LOGIN_REQUEST_DTO = LoginRequestDto.builder()
-            .username(USER_LOCAL_ADMIN_USERNAME)
-            .password(USER_LOCAL_ADMIN_PASSWORD)
-            .build();
-
     public static final UserDetails USER_LOCAL_ADMIN_DETAILS = UserDetailsDto.builder()
             .id(USER_LOCAL_ADMIN_ID.toString())
             .username(USER_LOCAL_ADMIN_USERNAME)
@@ -598,11 +582,6 @@ public abstract class BaseTest {
     public static final Principal USER_1_PRINCIPAL = new UsernamePasswordAuthenticationToken(USER_1_DETAILS,
             USER_1_PASSWORD, USER_1_DETAILS.getAuthorities());
 
-    public static final LoginRequestDto USER_1_LOGIN_REQUEST_DTO = LoginRequestDto.builder()
-            .username(USER_1_USERNAME)
-            .password(USER_1_PASSWORD)
-            .build();
-
     public static final UUID USER_2_ID = UUID.fromString("eeb9a51b-4cd8-4039-90bf-e24f17372f7c");
     public static final UUID USER_2_KEYCLOAK_ID = UUID.fromString("eeb9a51b-4cd8-4039-90bf-e24f17372f7c");
     public static final String USER_2_USERNAME = "junit2";
@@ -909,7 +888,7 @@ public abstract class BaseTest {
     public static final Principal USER_6_PRINCIPAL = new UsernamePasswordAuthenticationToken(USER_6_DETAILS,
             USER_6_PASSWORD, USER_6_DETAILS.getAuthorities());
 
-    public static final Long IMAGE_1_ID = 1L;
+    public static final UUID IMAGE_1_ID = UUID.fromString("e5449ade-acc1-4ba4-8858-e3496cdecd9c");
     public static final String IMAGE_1_REGISTRY = "docker.io";
     public static final String IMAGE_1_NAME = "mariadb";
     public static final String IMAGE_1_VERSION = "11.1.3";
@@ -952,14 +931,10 @@ public abstract class BaseTest {
 
     public static final ImageDto IMAGE_1_DTO = ImageDto.builder()
             .id(IMAGE_1_ID)
-            .registry(IMAGE_1_REGISTRY)
             .name(IMAGE_1_NAME)
             .version(IMAGE_1_VERSION)
-            .dialect(IMAGE_1_DIALECT)
-            .jdbcMethod(IMAGE_1_JDBC)
-            .driverClass(IMAGE_1_DRIVER)
-            .defaultPort(IMAGE_1_PORT)
             .isDefault(IMAGE_1_IS_DEFAULT)
+            .jdbcMethod(IMAGE_1_JDBC)
             .operators(null)
             .build();
 
@@ -968,10 +943,9 @@ public abstract class BaseTest {
             .name(IMAGE_1_NAME)
             .version(IMAGE_1_VERSION)
             .isDefault(IMAGE_1_IS_DEFAULT)
-            .jdbcMethod(IMAGE_1_JDBC)
             .build();
 
-    public static final Long IMAGE_1_OPERATORS_1_ID = 1L;
+    public static final UUID IMAGE_1_OPERATORS_1_ID = UUID.fromString("42a56348-38bd-4aba-b0f2-ac813d5d2da1");
     public static final String IMAGE_1_OPERATORS_1_DISPLAY_NAME = "XOR";
     public static final String IMAGE_1_OPERATORS_1_VALUE = "XOR";
     public static final String IMAGE_1_OPERATORS_1_DOCUMENTATION = "https://mariadb.com/kb/en/xor/";
@@ -993,7 +967,7 @@ public abstract class BaseTest {
                     .documentation(IMAGE_1_OPERATORS_1_DOCUMENTATION)
                     .build()));
 
-    public static final Long CONTAINER_1_ID = 1L;
+    public static final UUID CONTAINER_1_ID = UUID.fromString("7ddb7e87-b965-43a2-9a24-4fa406d998f4");
     public static final String CONTAINER_1_NAME = "u01";
     public static final String CONTAINER_1_INTERNALNAME = "dbrepo-userdb-u01";
     public static final String CONTAINER_1_UI_HOST = "localhost";
@@ -1054,7 +1028,7 @@ public abstract class BaseTest {
             .password(CONTAINER_1_PRIVILEGED_PASSWORD)
             .build();
 
-    public static final Long CONTAINER_2_ID = 2L;
+    public static final UUID CONTAINER_2_ID = UUID.fromString("c2ec601e-2bfb-4be8-8891-0cb804a08d4a");
     public static final ContainerImage CONTAINER_2_IMAGE = IMAGE_1;
     public static final ImageDto CONTAINER_2_IMAGE_DTO = IMAGE_1_DTO;
     public static final String CONTAINER_2_NAME = "u02";
@@ -1110,7 +1084,7 @@ public abstract class BaseTest {
             .password(CONTAINER_2_PRIVILEGED_PASSWORD)
             .build();
 
-    public static final Long CONTAINER_3_ID = 3L;
+    public static final UUID CONTAINER_3_ID = UUID.fromString("1731c7d2-8bd1-4392-85bc-18a3be99e01d");
     public static final ContainerImage CONTAINER_3_IMAGE = IMAGE_1;
     public static final String CONTAINER_3_NAME = "u03";
     public static final String CONTAINER_3_INTERNALNAME = "dbrepo-userdb-u03";
@@ -1136,7 +1110,7 @@ public abstract class BaseTest {
             .privilegedPassword(CONTAINER_3_PRIVILEGED_PASSWORD)
             .build();
 
-    public static final Long CONTAINER_4_ID = 4L;
+    public static final UUID CONTAINER_4_ID = UUID.fromString("67aee75c-791c-410b-abbb-175c11ddd252");
     public static final ContainerImage CONTAINER_4_IMAGE = IMAGE_1;
     public static final String CONTAINER_4_NAME = "u04";
     public static final String CONTAINER_4_INTERNALNAME = "dbrepo-userdb-u04";
@@ -1177,7 +1151,7 @@ public abstract class BaseTest {
             .internal(EXCHANGE_DBREPO_INTERNAL)
             .build();
 
-    public static final Long DATABASE_1_ID = 1L;
+    public static final UUID DATABASE_1_ID = UUID.fromString("b3bcb5bf-4f88-40e2-9726-9b0d2ee2b425");
     public static final String DATABASE_1_NAME = "Weather";
     public static final String DATABASE_1_DESCRIPTION = "Weather in Australia";
     public static final String DATABASE_1_INTERNALNAME = "weather";
@@ -1204,7 +1178,7 @@ public abstract class BaseTest {
             .privilegedPassword(CONTAINER_1_PRIVILEGED_PASSWORD)
             .build();
 
-    public static final Long DATABASE_2_ID = 2L;
+    public static final UUID DATABASE_2_ID = UUID.fromString("dd9dfee2-9fbd-46b0-92d5-98f0f8866ffe");
     public static final String DATABASE_2_NAME = "Zoo";
     public static final String DATABASE_2_DESCRIPTION = "Zoo data";
     public static final String DATABASE_2_INTERNALNAME = "zoo";
@@ -1222,7 +1196,7 @@ public abstract class BaseTest {
             .cid(CONTAINER_1_ID)
             .build();
 
-    public static final Long DATABASE_3_ID = 3L;
+    public static final UUID DATABASE_3_ID = UUID.fromString("9d8cb9a9-9468-4801-a2e0-2dac8bc67c31");
     public static final String DATABASE_3_NAME = "Musicology";
     public static final String DATABASE_3_DESCRIPTION = "Musicology data";
     public static final String DATABASE_3_INTERNALNAME = "musicology";
@@ -1278,7 +1252,7 @@ public abstract class BaseTest {
             .cid(CONTAINER_1_ID)
             .build();
 
-    public static final Long DATABASE_4_ID = 4L;
+    public static final UUID DATABASE_4_ID = UUID.fromString("c503d7f3-5952-4d97-b26a-da86bea4c20d");
     public static final String DATABASE_4_NAME = "Weather AT";
     public static final String DATABASE_4_DESCRIPTION = "Weather data";
     public static final Boolean DATABASE_4_PUBLIC = true;
@@ -1501,7 +1475,7 @@ public abstract class BaseTest {
                             .build()))
             .build();
 
-    public static final Long TABLE_1_ID = 1L;
+    public static final UUID TABLE_1_ID = UUID.fromString("666d0b6b-f017-4f7c-80d8-a47174d8b539");
     public static final String TABLE_1_NAME = "Weather AUS";
     public static final String TABLE_1_INTERNAL_NAME = "weather_aus";
     public static final Boolean TABLE_1_VERSIONED = true;
@@ -1511,7 +1485,6 @@ public abstract class BaseTest {
     public static final String TABLE_1_DESCRIPTION = "Weather in Australia";
     public static final String TABLE_1_QUEUE_NAME = TABLE_1_INTERNAL_NAME;
     public static final String TABLE_1_ROUTING_KEY = "dbrepo\\." + DATABASE_1_ID + "\\." + TABLE_1_ID;
-    public static final Long TABLE_1_DATABASE_ID = DATABASE_1_ID;
     public static final Long TABLE_1_AVG_ROW_LENGTH = 3L;
     public static final Long TABLE_1_NUM_ROWS = 3L;
     public static final Long TABLE_1_DATA_LENGTH = 2000L;
@@ -1587,8 +1560,18 @@ public abstract class BaseTest {
             .maxDataLength(TABLE_1_MAX_DATA_LENGTH)
             .build();
 
+    public static final UUID COLUMN_1_1_ID = UUID.fromString("377c0a6e-938e-458c-ad2b-bbbd75d46412");
+
+    public static final UUID COLUMN_1_2_ID = UUID.fromString("dbca4821-3023-479b-a25a-c08eb0ec02ce");
+
+    public static final UUID COLUMN_1_3_ID = UUID.fromString("8ff0351e-4882-4948-94af-598e4b264b25");
+
+    public static final UUID COLUMN_1_4_ID = UUID.fromString("9ab256eb-3324-4e76-af3b-e3e2a58ce161");
+
+    public static final UUID COLUMN_1_5_ID = UUID.fromString("619e9355-51aa-438f-8579-80cec30f35cb");
+
     public static final List<ColumnDto> TABLE_1_COLUMNS_DTO = List.of(ColumnDto.builder()
-                    .id(1L)
+                    .id(COLUMN_1_1_ID)
                     .tableId(TABLE_1_ID)
                     .databaseId(DATABASE_1_ID)
                     .ordinalPosition(0)
@@ -1600,7 +1583,7 @@ public abstract class BaseTest {
                     .sets(null)
                     .build(),
             ColumnDto.builder()
-                    .id(2L)
+                    .id(COLUMN_1_2_ID)
                     .tableId(TABLE_1_ID)
                     .databaseId(DATABASE_1_ID)
                     .ordinalPosition(1)
@@ -1612,7 +1595,7 @@ public abstract class BaseTest {
                     .sets(null)
                     .build(),
             ColumnDto.builder()
-                    .id(3L)
+                    .id(COLUMN_1_3_ID)
                     .tableId(TABLE_1_ID)
                     .databaseId(DATABASE_1_ID)
                     .ordinalPosition(2)
@@ -1625,7 +1608,7 @@ public abstract class BaseTest {
                     .sets(null)
                     .build(),
             ColumnDto.builder()
-                    .id(4L)
+                    .id(COLUMN_1_4_ID)
                     .tableId(TABLE_1_ID)
                     .databaseId(DATABASE_1_ID)
                     .ordinalPosition(3)
@@ -1639,7 +1622,7 @@ public abstract class BaseTest {
                     .sets(null)
                     .build(),
             ColumnDto.builder()
-                    .id(5L)
+                    .id(COLUMN_1_5_ID)
                     .tableId(TABLE_1_ID)
                     .databaseId(DATABASE_1_ID)
                     .ordinalPosition(4)
@@ -1693,7 +1676,7 @@ public abstract class BaseTest {
             }}
     ));
 
-    public static final Long TABLE_2_ID = 2L;
+    public static final UUID TABLE_2_ID = UUID.fromString("0cc067b6-4e81-4871-b47e-17a38228a574");
     public static final String TABLE_2_NAME = "Weather Location";
     public static final String TABLE_2_INTERNALNAME = "weather_location";
     public static final Boolean TABLE_2_VERSIONED = true;
@@ -1788,7 +1771,7 @@ public abstract class BaseTest {
             .ownedBy(USER_2_ID)
             .build();
 
-    public static final Long TABLE_3_ID = 3L;
+    public static final UUID TABLE_3_ID = UUID.fromString("a94ee518-c235-496b-8613-b0c643bc1b11");
     public static final String TABLE_3_NAME = "Sensor";
     public static final String TABLE_3_INTERNALNAME = "sensor";
     public static final Boolean TABLE_3_VERSIONED = true;
@@ -1892,7 +1875,7 @@ public abstract class BaseTest {
             .constraints(TABLE_3_CONSTRAINTS_INVALID_CREATE_DTO)
             .build();
 
-    public static final Long TABLE_5_ID = 5L;
+    public static final UUID TABLE_5_ID = UUID.fromString("91306cbd-c51f-47d3-8722-debfdbd8a77e");
     public static final String TABLE_5_NAME = "zoo";
     public static final String TABLE_5_INTERNALNAME = "zoo";
     public static final Boolean TABLE_5_VERSIONED = true;
@@ -1978,7 +1961,7 @@ public abstract class BaseTest {
             .ownedBy(USER_1_ID)
             .build();
 
-    public static final Long TABLE_6_ID = 6L;
+    public static final UUID TABLE_6_ID = UUID.fromString("ae84d169-d36c-4f5a-a390-153d090f9574");
     public static final String TABLE_6_NAME = "names";
     public static final String TABLE_6_INTERNALNAME = "names";
     public static final Boolean TABLE_6_VERSIONED = true;
@@ -2038,7 +2021,7 @@ public abstract class BaseTest {
             .ownedBy(USER_1_ID)
             .build();
 
-    public static final Long TABLE_7_ID = 7L;
+    public static final UUID TABLE_7_ID = UUID.fromString("e5d10200-3e4f-45f4-9f36-ff3ca39c6c29");
     public static final String TABLE_7_NAME = "likes";
     public static final String TABLE_7_INTERNAL_NAME = "likes";
     public static final Boolean TABLE_7_VERSIONED = true;
@@ -2098,7 +2081,7 @@ public abstract class BaseTest {
             .ownedBy(USER_1_ID)
             .build();
 
-    public static final Long TABLE_4_ID = 4L;
+    public static final UUID TABLE_4_ID = UUID.fromString("6c87cbcf-5043-404f-9bf1-b09ddbac25a2");
     public static final String TABLE_4_NAME = "Sensor 2";
     public static final String TABLE_4_INTERNALNAME = "sensor_2";
     public static final Boolean TABLE_4_VERSIONED = true;
@@ -2192,15 +2175,15 @@ public abstract class BaseTest {
             .build();
 
     public static final ColumnBriefDto TABLE_4_COLUMNS_BRIEF_0_DTO = ColumnBriefDto.builder()
-            .id(44L)
+            .id(UUID.fromString("360f02be-6dfb-48ea-9d1e-1da488b0e324"))
             .name("Timestamp")
             .internalName("timestamp")
             .columnType(ColumnTypeDto.TIMESTAMP)
             .build();
 
-    public static final Long COLUMN_4_1_ID = 44L;
+    public static final UUID COLUMN_4_1_ID = UUID.fromString("c8ec8a56-dea1-4316-895f-56e6d289cbf7");
 
-    public static final Long COLUMN_4_2_ID = 45L;
+    public static final UUID COLUMN_4_2_ID = UUID.fromString("d06956ae-aabd-474f-a47d-47af1ba043d1");
 
     public static final List<TableColumn> TABLE_4_COLUMNS = List.of(TableColumn.builder()
                     .id(COLUMN_4_1_ID)
@@ -2274,8 +2257,7 @@ public abstract class BaseTest {
                     .isNullAllowed(true)
                     .build());
 
-    public static final Long TABLE_8_ID = 8L;
-    public static final Long TABLE_8_DATABASE_ID = DATABASE_3_ID;
+    public static final UUID TABLE_8_ID = UUID.fromString("2e039d0d-3257-4083-8b32-76d7cfa1f7fd");
     public static final String TABLE_8_NAME = "location";
     public static final String TABLE_8_INTERNAL_NAME = "mfcc";
     public static final Boolean TABLE_8_VERSIONED = true;
@@ -2289,7 +2271,7 @@ public abstract class BaseTest {
 
     public static final Table TABLE_8 = Table.builder()
             .id(TABLE_8_ID)
-            .tdbid(TABLE_8_DATABASE_ID)
+            .tdbid(DATABASE_3_ID)
             .internalName(TABLE_8_INTERNAL_NAME)
             .description(TABLE_8_DESCRIPTION)
             .isVersioned(TABLE_8_VERSIONED)
@@ -2308,7 +2290,7 @@ public abstract class BaseTest {
 
     public static final TableDto TABLE_8_DTO = TableDto.builder()
             .id(TABLE_8_ID)
-            .tdbid(TABLE_8_DATABASE_ID)
+            .tdbid(DATABASE_3_ID)
             .internalName(TABLE_8_INTERNAL_NAME)
             .description(TABLE_8_DESCRIPTION)
             .isVersioned(TABLE_8_VERSIONED)
@@ -2341,7 +2323,7 @@ public abstract class BaseTest {
 
     public static final TableDto TABLE_8_PRIVILEGED_DTO = TableDto.builder()
             .id(TABLE_8_ID)
-            .tdbid(TABLE_8_DATABASE_ID)
+            .tdbid(DATABASE_3_ID)
             .internalName(TABLE_8_INTERNAL_NAME)
             .description(TABLE_8_DESCRIPTION)
             .isVersioned(TABLE_8_VERSIONED)
@@ -2355,8 +2337,7 @@ public abstract class BaseTest {
             .lastRetrieved(Instant.now())
             .build();
 
-    public static final Long TABLE_9_ID = 9L;
-    public static final Long TABLE_9_DATABASE_ID = DATABASE_4_ID;
+    public static final UUID TABLE_9_ID = UUID.fromString("9314294f-04fc-4354-8b1f-2a8aeb566453");
     public static final String TABLE_9_NAME = "mfcc";
     public static final String TABLE_9_INTERNAL_NAME = "mfcc";
     public static final Boolean TABLE_9_VERSIONED = true;
@@ -2371,7 +2352,7 @@ public abstract class BaseTest {
 
     public static final Table TABLE_9 = Table.builder()
             .id(TABLE_9_ID)
-            .tdbid(TABLE_9_DATABASE_ID)
+            .tdbid(DATABASE_4_ID)
             .internalName(TABLE_9_INTERNAL_NAME)
             .description(TABLE_9_DESCRIPTION)
             .isVersioned(TABLE_9_VERSIONED)
@@ -2390,7 +2371,7 @@ public abstract class BaseTest {
 
     public static final TableDto TABLE_9_DTO = TableDto.builder()
             .id(TABLE_9_ID)
-            .tdbid(TABLE_9_DATABASE_ID)
+            .tdbid(DATABASE_4_ID)
             .internalName(TABLE_9_INTERNAL_NAME)
             .description(TABLE_9_DESCRIPTION)
             .isVersioned(TABLE_9_VERSIONED)
@@ -2417,7 +2398,7 @@ public abstract class BaseTest {
 
     public static final TableDto TABLE_9_PRIVILEGED_DTO = TableDto.builder()
             .id(TABLE_9_ID)
-            .tdbid(TABLE_9_DATABASE_ID)
+            .tdbid(DATABASE_4_ID)
             .internalName(TABLE_9_INTERNAL_NAME)
             .description(TABLE_9_DESCRIPTION)
             .isVersioned(TABLE_9_VERSIONED)
@@ -2431,7 +2412,7 @@ public abstract class BaseTest {
             .lastRetrieved(Instant.now())
             .build();
 
-    public static final Long COLUMN_9_1_ID = 78L;
+    public static final UUID COLUMN_9_1_ID = UUID.fromString("e03c7578-2d1a-4599-9b11-7174f40efc0a");
     public static final String COLUMN_9_1_NAME = "location";
     public static final String COLUMN_9_1_INTERNAL_NAME = "location";
 
@@ -2442,9 +2423,9 @@ public abstract class BaseTest {
             .columnType(ColumnTypeDto.BIGINT)
             .build();
 
-    public static final Long COLUMN_9_2_ID = 79L;
+    public static final UUID COLUMN_9_2_ID = UUID.fromString("03c07223-17e1-4af5-b1ae-ef9ab434fe2d");
 
-    public static final Long COLUMN_9_3_ID = 80L;
+    public static final UUID COLUMN_9_3_ID = UUID.fromString("ee6590db-923b-4234-beb8-3120da055cf6");
 
     public static final List<TableColumn> TABLE_9_COLUMNS = List.of(TableColumn.builder()
                     .id(COLUMN_9_1_ID)
@@ -2528,7 +2509,7 @@ public abstract class BaseTest {
             .primaryKey(new LinkedList<>(List.of(PrimaryKey.builder()
                     .table(TABLE_9)
                     .column(TABLE_9_COLUMNS.get(0))
-                    .id(9L)
+                    .id(COLUMN_9_1_ID)
                     .build())))
             .build();
 
@@ -2539,7 +2520,7 @@ public abstract class BaseTest {
             .primaryKey(new LinkedHashSet<>(Set.of(PrimaryKeyDto.builder()
                     .table(TABLE_9_BRIEF_DTO)
                     .column(TABLE_9_COLUMNS_BRIEF_0_DTO)
-                    .id(9L)
+                    .id(COLUMN_9_1_ID)
                     .build())))
             .build();
 
@@ -2559,7 +2540,7 @@ public abstract class BaseTest {
             .type(QUEUE_TYPE)
             .build();
 
-    public static final Long ONTOLOGY_1_ID = 1L;
+    public static final UUID ONTOLOGY_1_ID = UUID.fromString("dc195d01-0a45-4583-aa83-fd270b874353");
     public static final String ONTOLOGY_1_PREFIX = "om2";
     public static final String ONTOLOGY_1_NEW_PREFIX = "om-2";
     public static final String ONTOLOGY_1_URI = "http://www.ontology-of-units-of-measure.org/resource/om-2/";
@@ -2611,7 +2592,7 @@ public abstract class BaseTest {
             .sparqlEndpoint(ONTOLOGY_1_SPARQL_ENDPOINT)
             .build();
 
-    public static final Long ONTOLOGY_2_ID = 2L;
+    public static final UUID ONTOLOGY_2_ID = UUID.fromString("41d902a1-f9f8-4d51-ad64-618b72acf5ed");
     public static final String ONTOLOGY_2_PREFIX = "wd";
     public static final String ONTOLOGY_2_URI = "http://www.wikidata.org/";
     public static final String ONTOLOGY_2_SPARQL_ENDPOINT = "https://query.wikidata.org/sparql";
@@ -2630,7 +2611,7 @@ public abstract class BaseTest {
             .sparqlEndpoint(ONTOLOGY_2_SPARQL_ENDPOINT)
             .build();
 
-    public static final Long ONTOLOGY_3_ID = 3L;
+    public static final UUID ONTOLOGY_3_ID = UUID.fromString("5b41390b-d2d2-45c6-8038-1258c4b2725f");
     public static final String ONTOLOGY_3_PREFIX = "rdfs";
     public static final String ONTOLOGY_3_URI = "http://www.w3.org/2000/01/rdf-schema#";
     public static final String ONTOLOGY_3_SPARQL_ENDPOINT = null;
@@ -2649,7 +2630,7 @@ public abstract class BaseTest {
             .sparqlEndpoint(ONTOLOGY_3_SPARQL_ENDPOINT)
             .build();
 
-    public static final Long ONTOLOGY_4_ID = 4L;
+    public static final UUID ONTOLOGY_4_ID = UUID.fromString("d6992475-9b71-4a4a-a6eb-bc1fe6a34443");
     public static final String ONTOLOGY_4_PREFIX = "schema";
     public static final String ONTOLOGY_4_URI = "http://schema.org/";
     public static final String ONTOLOGY_4_SPARQL_ENDPOINT = null;
@@ -2668,7 +2649,7 @@ public abstract class BaseTest {
             .sparqlEndpoint(ONTOLOGY_4_SPARQL_ENDPOINT)
             .build();
 
-    public static final Long ONTOLOGY_5_ID = 5L;
+    public static final UUID ONTOLOGY_5_ID = UUID.fromString("f95d1330-762e-4f5a-875a-3c64da5808a1");
     public static final String ONTOLOGY_5_PREFIX = "db";
     public static final String ONTOLOGY_5_URI = "http://dbpedia.org";
     public static final String ONTOLOGY_5_SPARQL_ENDPOINT = "http://dbpedia.org/sparql";
@@ -2687,7 +2668,7 @@ public abstract class BaseTest {
             .sparqlEndpoint(ONTOLOGY_5_SPARQL_ENDPOINT)
             .build();
 
-    public static final Long COLUMN_8_1_ID = 75L;
+    public static final UUID COLUMN_8_1_ID = UUID.fromString("af362ac6-5dbb-4ede-83ea-5d94b39641c8");
     public static final Integer COLUMN_8_1_ORDINALPOS = 0;
     public static final String COLUMN_8_1_NAME = "ID";
     public static final String COLUMN_8_1_INTERNAL_NAME = "id";
@@ -2696,7 +2677,7 @@ public abstract class BaseTest {
     public static final Boolean COLUMN_8_1_NULL = false;
     public static final Boolean COLUMN_8_1_AUTO_GENERATED = true;
 
-    public static final Long COLUMN_8_2_ID = 76L;
+    public static final UUID COLUMN_8_2_ID = UUID.fromString("7ada597b-0766-4612-9ace-67eeee94e2da");
     public static final Integer COLUMN_8_2_ORDINALPOS = 1;
     public static final String COLUMN_8_2_NAME = "Value";
     public static final String COLUMN_8_2_INTERNAL_NAME = "value";
@@ -2707,7 +2688,7 @@ public abstract class BaseTest {
     public static final Boolean COLUMN_8_2_NULL = false;
     public static final Boolean COLUMN_8_2_AUTO_GENERATED = false;
 
-    public static final Long COLUMN_8_3_ID = 77L;
+    public static final UUID COLUMN_8_3_ID = UUID.fromString("8bcd9ef8-f7b8-4730-acc1-a3d43ba69a56");
     public static final Integer COLUMN_8_3_ORDINALPOS = 2;
     public static final String COLUMN_8_3_NAME = "raw";
     public static final String COLUMN_8_3_INTERNAL_NAME = "raw";
@@ -2826,11 +2807,9 @@ public abstract class BaseTest {
             }})
             .build();
 
-    public static final Long QUERY_1_ID = 1L;
+    public static final UUID QUERY_1_ID = UUID.fromString("60494137-f000-459e-acd3-4fcadbdf14ca");
     public static final String QUERY_1_STATEMENT = "SELECT `id`, `date`, `location`, `mintemp`, `rainfall` FROM `weather_aus` ORDER BY id ASC";
     public static final String QUERY_1_DOI = null;
-    public static final Long QUERY_1_CONTAINER_ID = CONTAINER_1_ID;
-    public static final Long QUERY_1_DATABASE_ID = DATABASE_1_ID;
     public static final Long QUERY_1_RESULT_NUMBER = 2L;
     public static final String QUERY_1_QUERY_HASH = "a3b8ac39e38167d14cf3a9c20a69e4b6954d049525390b973a2c23064953a992";
     public static final String QUERY_1_RESULT_HASH = "8358c8ade4849d2094ab5bb29127afdae57e6bb5acb1db7af603813d406c467a";
@@ -2840,7 +2819,7 @@ public abstract class BaseTest {
 
     public static final QueryDto QUERY_1_DTO = QueryDto.builder()
             .id(QUERY_1_ID)
-            .databaseId(QUERY_1_DATABASE_ID)
+            .databaseId(DATABASE_1_ID)
             .query(QUERY_1_STATEMENT)
             .queryHash(QUERY_1_QUERY_HASH)
             .resultHash(QUERY_1_RESULT_HASH)
@@ -2851,7 +2830,7 @@ public abstract class BaseTest {
             .build();
 
     public static final ViewDto QUERY_1_VIEW_DTO = ViewDto.builder()
-            .vdbid(QUERY_1_DATABASE_ID)
+            .vdbid(DATABASE_1_ID)
             .query(QUERY_1_STATEMENT)
             .queryHash(QUERY_1_QUERY_HASH)
             .owner(USER_1_BRIEF_DTO)
@@ -2879,7 +2858,7 @@ public abstract class BaseTest {
 
     public static final QueryBriefDto QUERY_1_BRIEF_DTO = QueryBriefDto.builder()
             .id(QUERY_1_ID)
-            .databaseId(QUERY_1_DATABASE_ID)
+            .databaseId(DATABASE_1_ID)
             .query(QUERY_1_STATEMENT)
             .queryHash(QUERY_1_QUERY_HASH)
             .resultHash(QUERY_1_RESULT_HASH)
@@ -2889,7 +2868,7 @@ public abstract class BaseTest {
             .resultNumber(3L)
             .build();
 
-    public static final Long QUERY_2_ID = 2L;
+    public static final UUID QUERY_2_ID = UUID.fromString("4e0ac92a-7cb3-4222-9b85-0498c73e0afd");
     public static final String QUERY_2_STATEMENT = "SELECT `location` FROM `weather_aus`";
     public static final String QUERY_2_QUERY_HASH = "a2d2dd94ebc7653bb5a3b55dd8ed5e91d3d13c225c6855a1eb4eb7ca14c36ced";
     public static final Long QUERY_2_RESULT_NUMBER = 2L;
@@ -2913,11 +2892,9 @@ public abstract class BaseTest {
             .resultNumber(3L)
             .build();
 
-    public static final Long QUERY_3_ID = 3L;
+    public static final UUID QUERY_3_ID = UUID.fromString("a9849020-45a7-40a8-9a19-d4ae2b28dd46");
     public static final String QUERY_3_STATEMENT = "SELECT `location`, `mintemp` FROM `weather_aus` WHERE `mintemp` > 10";
     public static final String QUERY_3_QUERY_HASH = "a3d3dd94ebc7653bb5a3b55dd8ed5e91d3d13c335c6855a1eb4eb7ca14c36ced";
-    public static final Long QUERY_3_CONTAINER_ID = CONTAINER_1_ID;
-    public static final Long QUERY_3_DATABASE_ID = DATABASE_1_ID;
     public static final String QUERY_3_RESULT_HASH = "ff3f7cbe1b96d396957f6e39e55b8b1b577fa3d305d4795af99594cfd30cb80d";
     public static final Instant QUERY_3_CREATED = Instant.now().minus(3, MINUTES);
     public static final Instant QUERY_3_EXECUTION = Instant.now().minus(1, MINUTES);
@@ -2927,7 +2904,7 @@ public abstract class BaseTest {
 
     public static final QueryDto QUERY_3_DTO = QueryDto.builder()
             .id(QUERY_3_ID)
-            .databaseId(QUERY_3_DATABASE_ID)
+            .databaseId(DATABASE_1_ID)
             .query(QUERY_3_STATEMENT)
             .queryNormalized(QUERY_3_STATEMENT)
             .resultNumber(QUERY_3_RESULT_NUMBER)
@@ -2939,7 +2916,7 @@ public abstract class BaseTest {
             .resultNumber(2L)
             .build();
 
-    public static final Long QUERY_7_ID = 7L;
+    public static final UUID QUERY_7_ID = UUID.fromString("fe73a325-30a0-444c-b74f-23ce1533e55f");
     public static final String QUERY_7_STATEMENT = "SELECT id, date, a.location, lat, lng FROM weather_aus a JOIN weather_location l on a.location = l.location WHERE date = '2008-12-01'";
     public static final String QUERY_7_QUERY_HASH = "df7da3801dfb5c191ff6711d79ce6455f3c09ec8323ce1ff7208ab85387263f5";
     public static final String QUERY_7_RESULT_HASH = "ff4f7cbe1b96d496957f6e49e55b8b1b577fa4d405d4795af99594cfd40cb80d";
@@ -2964,11 +2941,9 @@ public abstract class BaseTest {
             .resultNumber(2L)
             .build();
 
-    public static final Long QUERY_4_ID = 4L;
+    public static final UUID QUERY_4_ID = UUID.fromString("18a98197-51ff-4011-9f40-914a11675a6d");
     public static final String QUERY_4_STATEMENT = "SELECT `id`, `value` FROM `mfcc`";
     public static final String QUERY_4_QUERY_HASH = "df7da3801dfb5c191ff6711d79ce6455f3c09ec8323ce1ff7208ab85387263f5";
-    public static final Long QUERY_4_CONTAINER_ID = CONTAINER_3_ID;
-    public static final Long QUERY_4_DATABASE_ID = DATABASE_3_ID;
     public static final String QUERY_4_RESULT_HASH = "ff4f7cbe1b96d496957f6e49e55b8b1b577fa4d405d4795af99594cfd40cb80d";
     public static final Instant QUERY_4_CREATED = Instant.now().minus(4, MINUTES);
     public static final Instant QUERY_4_EXECUTION = Instant.now().minus(1, MINUTES);
@@ -3012,7 +2987,7 @@ public abstract class BaseTest {
 
     public static final QueryDto QUERY_4_DTO = QueryDto.builder()
             .id(QUERY_4_ID)
-            .databaseId(QUERY_4_DATABASE_ID)
+            .databaseId(DATABASE_3_ID)
             .query(QUERY_4_STATEMENT)
             .queryNormalized(QUERY_4_STATEMENT)
             .resultNumber(QUERY_4_RESULT_NUMBER)
@@ -3023,11 +2998,9 @@ public abstract class BaseTest {
             .owner(USER_1_BRIEF_DTO)
             .build();
 
-    public static final Long QUERY_5_ID = 5L;
+    public static final UUID QUERY_5_ID = UUID.fromString("1a39f775-e3d5-4865-b4f5-dbbb5693b637");
     public static final String QUERY_5_STATEMENT = "SELECT `id`, `value` FROM `mfcc` WHERE `value` > 0";
     public static final String QUERY_5_QUERY_HASH = "6d6dc48b12cdfd959d39a62887334a6bbd529b93eed4f211f3f671bd9e7d6225";
-    public static final Long QUERY_5_CONTAINER_ID = CONTAINER_3_ID;
-    public static final Long QUERY_5_DATABASE_ID = DATABASE_3_ID;
     public static final String QUERY_5_RESULT_HASH = "ff5f7cbe1b96d596957f6e59e55b8b1b577fa5d505d5795af99595cfd50cb80d";
     public static final Instant QUERY_5_CREATED = Instant.now().minus(5, MINUTES);
     public static final Instant QUERY_5_EXECUTION = Instant.now().minus(1, MINUTES);
@@ -3037,7 +3010,7 @@ public abstract class BaseTest {
 
     public static final QueryDto QUERY_5_DTO = QueryDto.builder()
             .id(QUERY_5_ID)
-            .databaseId(QUERY_5_DATABASE_ID)
+            .databaseId(DATABASE_3_ID)
             .query(QUERY_5_STATEMENT)
             .queryNormalized(QUERY_5_STATEMENT)
             .resultNumber(QUERY_5_RESULT_NUMBER)
@@ -3072,7 +3045,7 @@ public abstract class BaseTest {
             Map.of("id", BigInteger.valueOf(6L), "value", 23.1)
     ));
 
-    public static final Long QUERY_6_ID = 6L;
+    public static final UUID QUERY_6_ID = UUID.fromString("7463412a-20c4-4fc1-8a33-948aea026f49");
     public static final String QUERY_6_STATEMENT = "SELECT `location` FROM `weather_aus` WHERE `id` = 1";
     public static final String QUERY_6_QUERY_HASH = "6d6dc48b12cdfd959d39a62887334a6bbd529b93eed4f211f3f671bd9e7d6225";
     public static final String QUERY_6_RESULT_HASH = "ff5f7cbe1b96d596957f6e59e55b8b1b577fa5d505d5795af99595cfd50cb80d";
@@ -3095,23 +3068,6 @@ public abstract class BaseTest {
             .isPersisted(QUERY_6_PERSISTED)
             .build();
 
-    public static final ColumnBriefDto TABLE_1_COLUMNS_BRIEF_0_DTO = ColumnBriefDto.builder()
-            .id(1L)
-            .name("id")
-            .internalName("id")
-            .columnType(ColumnTypeDto.BIGINT)
-            .build();
-
-    public static final Long COLUMN_1_1_ID = 1L;
-
-    public static final Long COLUMN_1_2_ID = 2L;
-
-    public static final Long COLUMN_1_3_ID = 3L;
-
-    public static final Long COLUMN_1_4_ID = 4L;
-
-    public static final Long COLUMN_1_5_ID = 5L;
-
     public static final List<TableColumn> TABLE_1_COLUMNS = List.of(TableColumn.builder()
                     .id(COLUMN_1_1_ID)
                     .ordinalPosition(0)
@@ -3165,6 +3121,13 @@ public abstract class BaseTest {
                     .isNullAllowed(true)
                     .build());
 
+    public static final ColumnBriefDto TABLE_1_COLUMNS_BRIEF_0_DTO = ColumnBriefDto.builder()
+            .id(COLUMN_1_1_ID)
+            .name("id")
+            .internalName("id")
+            .columnType(ColumnTypeDto.BIGINT)
+            .build();
+
     public static final List<CreateTableColumnDto> TABLE_1_COLUMNS_CREATE_DTO = List.of(CreateTableColumnDto.builder()
                     .name("id")
                     .type(ColumnTypeDto.BIGINT)
@@ -3235,11 +3198,11 @@ public abstract class BaseTest {
             .constraints(TABLE_1_CONSTRAINTS_CREATE_INVALID_DTO)
             .build();
 
-    public static final Long COLUMN_2_1_ID = 6L;
+    public static final UUID COLUMN_2_1_ID = UUID.fromString("795faa78-7ebb-4dd5-9eb1-e54a9192d0b5");
 
-    public static final Long COLUMN_2_2_ID = 7L;
+    public static final UUID COLUMN_2_2_ID = UUID.fromString("f316ced5-7774-4656-aa7f-a874622d99b3");
 
-    public static final Long COLUMN_2_3_ID = 8L;
+    public static final UUID COLUMN_2_3_ID = UUID.fromString("11cb1aa2-8582-45ef-a3bb-7056aa94cdf1");
 
     public static final List<TableColumn> TABLE_2_COLUMNS = List.of(TableColumn.builder()
                     .id(COLUMN_2_1_ID)
@@ -3359,75 +3322,75 @@ public abstract class BaseTest {
                     .columnType(ColumnTypeDto.DOUBLE)
                     .build());
 
-    public static final Long COLUMN_3_1_ID = 9L;
+    public static final UUID COLUMN_3_1_ID = UUID.fromString("49cc2735-ba75-4e12-8ac7-8aec87ed7724");
 
-    public static final Long COLUMN_3_2_ID = 10L;
+    public static final UUID COLUMN_3_2_ID = UUID.fromString("2c240d64-3052-4a74-b696-e7490fdff3ea");
 
-    public static final Long COLUMN_3_3_ID = 11L;
+    public static final UUID COLUMN_3_3_ID = UUID.fromString("6fbb0a56-f23a-4aa4-b158-c614a0a30f86");
 
-    public static final Long COLUMN_3_4_ID = 12L;
+    public static final UUID COLUMN_3_4_ID = UUID.fromString("9b01f925-93ee-4f28-bf31-9902900a7099");
 
-    public static final Long COLUMN_3_5_ID = 13L;
+    public static final UUID COLUMN_3_5_ID = UUID.fromString("9bbd66f1-0d94-401c-b7f7-6e329bb9ee21");
 
-    public static final Long COLUMN_3_6_ID = 14L;
+    public static final UUID COLUMN_3_6_ID = UUID.fromString("19ad93d7-b298-495b-9678-9aac80678ff9");
 
-    public static final Long COLUMN_3_7_ID = 15L;
+    public static final UUID COLUMN_3_7_ID = UUID.fromString("4d27d9f4-645f-4222-b5a8-4a91fa6e4275");
 
-    public static final Long COLUMN_3_8_ID = 16L;
+    public static final UUID COLUMN_3_8_ID = UUID.fromString("b4f8fcf8-5824-45ec-8c58-43f20e6dffc5");
 
-    public static final Long COLUMN_3_9_ID = 17L;
+    public static final UUID COLUMN_3_9_ID = UUID.fromString("87247218-369e-484a-9a8f-d758478d8dfc");
 
-    public static final Long COLUMN_3_10_ID = 18L;
+    public static final UUID COLUMN_3_10_ID = UUID.fromString("6e191b97-189a-4d88-901e-888ca889e280");
 
-    public static final Long COLUMN_3_11_ID = 19L;
+    public static final UUID COLUMN_3_11_ID = UUID.fromString("6ac356ff-9be5-4259-9b62-83b6707be7fe");
 
-    public static final Long COLUMN_3_12_ID = 20L;
+    public static final UUID COLUMN_3_12_ID = UUID.fromString("0665b384-c824-4358-b6c5-f17706d46ea4");
 
-    public static final Long COLUMN_3_13_ID = 21L;
+    public static final UUID COLUMN_3_13_ID = UUID.fromString("22d3676e-d28e-4075-b223-91a7ac767bcf");
 
-    public static final Long COLUMN_3_14_ID = 22L;
+    public static final UUID COLUMN_3_14_ID = UUID.fromString("673326e3-ee2b-4c2f-902f-982e2abce1c2");
 
-    public static final Long COLUMN_3_15_ID = 23L;
+    public static final UUID COLUMN_3_15_ID = UUID.fromString("8dcacf4a-736b-4e67-9618-74998cba8940");
 
-    public static final Long COLUMN_3_16_ID = 24L;
+    public static final UUID COLUMN_3_16_ID = UUID.fromString("2b2f5359-76d3-4763-a53f-d18ca6b793fb");
 
-    public static final Long COLUMN_3_17_ID = 25L;
+    public static final UUID COLUMN_3_17_ID = UUID.fromString("674b6120-06cf-4624-b006-1ed48898bd69");
 
-    public static final Long COLUMN_3_18_ID = 26L;
+    public static final UUID COLUMN_3_18_ID = UUID.fromString("13edd7c9-6c88-44d7-b206-34774e49c5af");
 
-    public static final Long COLUMN_3_19_ID = 27L;
+    public static final UUID COLUMN_3_19_ID = UUID.fromString("6977bb3f-4ae2-43ea-bb82-c7f68454c538");
 
-    public static final Long COLUMN_3_20_ID = 28L;
+    public static final UUID COLUMN_3_20_ID = UUID.fromString("c03d2429-53e1-42eb-a1f5-ce342fa23336");
 
-    public static final Long COLUMN_3_21_ID = 29L;
+    public static final UUID COLUMN_3_21_ID = UUID.fromString("06edd332-750e-4aa1-b61b-e757fb2312c3");
 
-    public static final Long COLUMN_3_22_ID = 30L;
+    public static final UUID COLUMN_3_22_ID = UUID.fromString("b6b8631d-f283-49da-8d5e-4bb24def2a40");
 
-    public static final Long COLUMN_3_23_ID = 31L;
+    public static final UUID COLUMN_3_23_ID = UUID.fromString("0393ee00-31ba-44ab-9e82-1f5034a9f57b");
 
-    public static final Long COLUMN_3_24_ID = 32L;
+    public static final UUID COLUMN_3_24_ID = UUID.fromString("a63784ea-f70d-4bda-ace6-1c6a88edf831");
 
-    public static final Long COLUMN_3_25_ID = 33L;
+    public static final UUID COLUMN_3_25_ID = UUID.fromString("720fe829-802c-420b-8e41-bdbb636db43c");
 
-    public static final Long COLUMN_3_26_ID = 34L;
+    public static final UUID COLUMN_3_26_ID = UUID.fromString("5bce38ef-7d49-43b5-9054-068750684b5f");
 
-    public static final Long COLUMN_3_27_ID = 35L;
+    public static final UUID COLUMN_3_27_ID = UUID.fromString("92097c02-3dd3-40ea-bd03-a9135f45a557");
 
-    public static final Long COLUMN_3_28_ID = 36L;
+    public static final UUID COLUMN_3_28_ID = UUID.fromString("7361a38a-828b-495e-8a57-b36cca17d7db");
 
-    public static final Long COLUMN_3_29_ID = 37L;
+    public static final UUID COLUMN_3_29_ID = UUID.fromString("a06812db-03b7-484c-92a6-45d94eef3bb9");
 
-    public static final Long COLUMN_3_30_ID = 38L;
+    public static final UUID COLUMN_3_30_ID = UUID.fromString("05614d89-9216-47ea-96f0-acffc4674acf");
 
-    public static final Long COLUMN_3_31_ID = 39L;
+    public static final UUID COLUMN_3_31_ID = UUID.fromString("05ada13d-361a-48e7-9a0f-1191499509f1");
 
-    public static final Long COLUMN_3_32_ID = 40L;
+    public static final UUID COLUMN_3_32_ID = UUID.fromString("b3f259f6-700a-4b60-8eac-dceaa0dcda9d");
 
-    public static final Long COLUMN_3_33_ID = 41L;
+    public static final UUID COLUMN_3_33_ID = UUID.fromString("9160af06-e168-4b10-a7f9-520f41ae7955");
 
-    public static final Long COLUMN_3_34_ID = 42L;
+    public static final UUID COLUMN_3_34_ID = UUID.fromString("fde20c99-ed9c-4a60-8c18-f46e8603ebb5");
 
-    public static final Long COLUMN_3_35_ID = 43L;
+    public static final UUID COLUMN_3_35_ID = UUID.fromString("071c7f27-1cdd-4af9-b4d6-f932c27c7287");
 
     public static final ColumnBriefDto TABLE_3_COLUMNS_BRIEF_0_DTO = ColumnBriefDto.builder()
             .id(COLUMN_3_1_ID)
@@ -4208,47 +4171,47 @@ public abstract class BaseTest {
                     .sets(new LinkedList<>())
                     .build());
 
-    public static final Long COLUMN_5_1_ID = 46L;
+    public static final UUID COLUMN_5_1_ID = UUID.fromString("4efd4cbb-ca2e-48e2-8f40-37514956aa67");
 
-    public static final Long COLUMN_5_2_ID = 47L;
+    public static final UUID COLUMN_5_2_ID = UUID.fromString("53061685-c1db-4df6-ad4e-8f384a200104");
 
-    public static final Long COLUMN_5_3_ID = 48L;
+    public static final UUID COLUMN_5_3_ID = UUID.fromString("643f9cda-8db1-47a4-bb08-c10e78e54c10");
 
-    public static final Long COLUMN_5_4_ID = 49L;
+    public static final UUID COLUMN_5_4_ID = UUID.fromString("efeacc15-3b31-4a9f-9dba-f07d62dcddd6");
 
-    public static final Long COLUMN_5_5_ID = 50L;
+    public static final UUID COLUMN_5_5_ID = UUID.fromString("0319db31-473a-47bc-bb9d-fa1edf82fcd5");
 
-    public static final Long COLUMN_5_6_ID = 51L;
+    public static final UUID COLUMN_5_6_ID = UUID.fromString("9ba789ca-59cf-4480-b9f6-3b957b1d7f5c");
 
-    public static final Long COLUMN_5_7_ID = 52L;
+    public static final UUID COLUMN_5_7_ID = UUID.fromString("81c42954-fd1a-4fef-adb1-bc4945469e26");
 
-    public static final Long COLUMN_5_8_ID = 53L;
+    public static final UUID COLUMN_5_8_ID = UUID.fromString("49a38905-52a2-4a9b-b7b9-5e1dcf799b2a");
 
-    public static final Long COLUMN_5_9_ID = 54L;
+    public static final UUID COLUMN_5_9_ID = UUID.fromString("1e1a9b6b-5aee-4773-b52d-ea56a5d1e2c8");
 
-    public static final Long COLUMN_5_10_ID = 55L;
+    public static final UUID COLUMN_5_10_ID = UUID.fromString("42ede62a-ae98-4a14-ba54-76b8ba1c580f");
 
-    public static final Long COLUMN_5_11_ID = 56L;
+    public static final UUID COLUMN_5_11_ID = UUID.fromString("0af0f84a-5a58-418a-8bbc-bde29ed0cda0");
 
-    public static final Long COLUMN_5_12_ID = 57L;
+    public static final UUID COLUMN_5_12_ID = UUID.fromString("d9cb30a2-1566-4bd1-899d-060a8ba47722");
 
-    public static final Long COLUMN_5_13_ID = 58L;
+    public static final UUID COLUMN_5_13_ID = UUID.fromString("e69f7f75-3731-4706-8193-0393aa0c08a7");
 
-    public static final Long COLUMN_5_14_ID = 59L;
+    public static final UUID COLUMN_5_14_ID = UUID.fromString("4441630e-7dfa-4046-8bc2-929860f1c66e");
 
-    public static final Long COLUMN_5_15_ID = 60L;
+    public static final UUID COLUMN_5_15_ID = UUID.fromString("f0a12be0-0b26-4686-bf7e-539cdc7e71b4");
 
-    public static final Long COLUMN_5_16_ID = 61L;
+    public static final UUID COLUMN_5_16_ID = UUID.fromString("b60abdcc-5786-40f8-a309-e4467f7d963c");
 
-    public static final Long COLUMN_5_17_ID = 62L;
+    public static final UUID COLUMN_5_17_ID = UUID.fromString("6d5877e2-daef-43d6-a1b6-1aff3ab1a9a2");
 
-    public static final Long COLUMN_5_18_ID = 63L;
+    public static final UUID COLUMN_5_18_ID = UUID.fromString("bb45455f-d449-496e-94f8-eac4d46ba9c0");
 
-    public static final Long COLUMN_5_19_ID = 64L;
+    public static final UUID COLUMN_5_19_ID = UUID.fromString("44c5484b-b57d-48a4-8f24-d2074de98e1a");
 
-    public static final Long COLUMN_5_20_ID = 65L;
+    public static final UUID COLUMN_5_20_ID = UUID.fromString("6475b937-71fc-4331-bc85-8ee71fa68d99");
 
-    public static final Long COLUMN_5_21_ID = 66L;
+    public static final UUID COLUMN_5_21_ID = UUID.fromString("92ff472f-e203-4c8e-b243-81640229ca19");
 
     public static final ColumnBriefDto TABLE_5_COLUMNS_BRIEF_0_DTO = ColumnBriefDto.builder()
             .id(COLUMN_5_1_ID)
@@ -4774,8 +4737,20 @@ public abstract class BaseTest {
             .constraints(TABLE_5_CONSTRAINTS_INVALID_CREATE)
             .build();
 
+    public static final UUID COLUMN_6_1_ID = UUID.fromString("27b04a64-2849-4fae-b295-858c3e50361f");
+
+    public static final UUID COLUMN_6_2_ID = UUID.fromString("1ea62e32-5719-4152-94da-45d37eb88b6f");
+
+    public static final UUID COLUMN_6_3_ID = UUID.fromString("f523f9f5-42f7-4695-841e-a5fd30fa6879");
+
+    public static final UUID COLUMN_6_4_ID = UUID.fromString("f57ea880-f917-4127-bcbb-202a34831383");
+
+    public static final UUID COLUMN_6_5_ID = UUID.fromString("38aaeb63-b94b-4d90-8eae-a626dfb1f092");
+
+    public static final UUID COLUMN_6_6_ID = UUID.fromString("f788cf6f-66ed-4f28-8b24-d9d173c4d340");
+
     public static final List<TableColumn> TABLE_6_COLUMNS = List.of(TableColumn.builder()
-                    .id(67L)
+                    .id(COLUMN_6_1_ID)
                     .ordinalPosition(0)
                     .table(TABLE_6)
                     .name("id")
@@ -4784,7 +4759,7 @@ public abstract class BaseTest {
                     .isNullAllowed(false)
                     .build(),
             TableColumn.builder()
-                    .id(68L)
+                    .id(COLUMN_6_2_ID)
                     .ordinalPosition(1)
                     .table(TABLE_6)
                     .name("firstname")
@@ -4793,7 +4768,7 @@ public abstract class BaseTest {
                     .isNullAllowed(false)
                     .build(),
             TableColumn.builder()
-                    .id(69L)
+                    .id(COLUMN_6_3_ID)
                     .ordinalPosition(2)
                     .table(TABLE_6)
                     .name("lastname")
@@ -4802,7 +4777,7 @@ public abstract class BaseTest {
                     .isNullAllowed(false)
                     .build(),
             TableColumn.builder()
-                    .id(70L)
+                    .id(COLUMN_6_4_ID)
                     .ordinalPosition(3)
                     .table(TABLE_6)
                     .name("birth")
@@ -4811,7 +4786,7 @@ public abstract class BaseTest {
                     .isNullAllowed(false)
                     .build(),
             TableColumn.builder()
-                    .id(71L)
+                    .id(COLUMN_6_5_ID)
                     .ordinalPosition(4)
                     .table(TABLE_6)
                     .name("reminder")
@@ -4820,7 +4795,7 @@ public abstract class BaseTest {
                     .isNullAllowed(false)
                     .build(),
             TableColumn.builder()
-                    .id(72L)
+                    .id(COLUMN_6_6_ID)
                     .ordinalPosition(5)
                     .table(TABLE_6)
                     .name("ref_id")
@@ -4830,14 +4805,14 @@ public abstract class BaseTest {
                     .build());
 
     public static final ColumnBriefDto TABLE_6_COLUMNS_BRIEF_0_DTO = ColumnBriefDto.builder()
-            .id(67L)
+            .id(COLUMN_6_1_ID)
             .name("id")
             .internalName("id")
             .columnType(ColumnTypeDto.BIGINT)
             .build();
 
     public static final List<ColumnDto> TABLE_6_COLUMNS_DTO = List.of(ColumnDto.builder()
-                    .id(67L)
+                    .id(COLUMN_6_1_ID)
                     .ordinalPosition(0)
                     .tableId(TABLE_6_ID)
                     .name("id")
@@ -4846,7 +4821,7 @@ public abstract class BaseTest {
                     .isNullAllowed(false)
                     .build(),
             ColumnDto.builder()
-                    .id(68L)
+                    .id(COLUMN_6_2_ID)
                     .ordinalPosition(1)
                     .tableId(TABLE_6_ID)
                     .name("firstname")
@@ -4855,7 +4830,7 @@ public abstract class BaseTest {
                     .isNullAllowed(false)
                     .build(),
             ColumnDto.builder()
-                    .id(69L)
+                    .id(COLUMN_6_3_ID)
                     .ordinalPosition(2)
                     .tableId(TABLE_6_ID)
                     .name("lastname")
@@ -4864,7 +4839,7 @@ public abstract class BaseTest {
                     .isNullAllowed(false)
                     .build(),
             ColumnDto.builder()
-                    .id(70L)
+                    .id(COLUMN_6_4_ID)
                     .ordinalPosition(3)
                     .tableId(TABLE_6_ID)
                     .name("birth")
@@ -4873,7 +4848,7 @@ public abstract class BaseTest {
                     .isNullAllowed(false)
                     .build(),
             ColumnDto.builder()
-                    .id(71L)
+                    .id(COLUMN_6_5_ID)
                     .ordinalPosition(4)
                     .tableId(TABLE_6_ID)
                     .name("reminder")
@@ -4882,7 +4857,7 @@ public abstract class BaseTest {
                     .isNullAllowed(false)
                     .build(),
             ColumnDto.builder()
-                    .id(72L)
+                    .id(COLUMN_6_6_ID)
                     .ordinalPosition(5)
                     .tableId(TABLE_6_ID)
                     .name("ref_id")
@@ -4929,9 +4904,9 @@ public abstract class BaseTest {
             .constraints(TABLE_6_CONSTRAINTS_CREATE)
             .build();
 
-    public static final Long COLUMN_7_1_ID = 73L;
+    public static final UUID COLUMN_7_1_ID = UUID.fromString("395b44a4-0e31-41ea-94ad-c4f2d5e912c6");
 
-    public static final Long COLUMN_7_2_ID = 74L;
+    public static final UUID COLUMN_7_2_ID = UUID.fromString("5713333b-872a-44c5-ab94-4d0ab62f5663");
 
     public static final ColumnBriefDto TABLE_7_COLUMNS_BRIEF_0_DTO = ColumnBriefDto.builder()
             .id(COLUMN_7_1_ID)
@@ -4985,12 +4960,10 @@ public abstract class BaseTest {
                     .isNullAllowed(false)
                     .build());
 
-    public static final Long VIEW_1_ID = 1L;
+    public static final UUID VIEW_1_ID = UUID.fromString("7d712cf7-78c7-4a47-90b0-d6b9f7f19b70");
     public static final Boolean VIEW_1_INITIAL_VIEW = false;
     public static final String VIEW_1_NAME = "JUnit";
     public static final String VIEW_1_INTERNAL_NAME = "junit";
-    public static final Long VIEW_1_CONTAINER_ID = CONTAINER_1_ID;
-    public static final Long VIEW_1_DATABASE_ID = DATABASE_1_ID;
     public static final Boolean VIEW_1_PUBLIC = false;
     public static final Boolean VIEW_1_SCHEMA_PUBLIC = false;
     public static final String VIEW_1_QUERY = "select `location`, `lat`, `lng` from `weather_location`";
@@ -4998,7 +4971,7 @@ public abstract class BaseTest {
 
     public static final List<ViewColumnDto> VIEW_1_COLUMNS_DTO = List.of(
             ViewColumnDto.builder()
-                    .id(1L)
+                    .id(COLUMN_2_1_ID)
                     .ordinalPosition(0)
                     .databaseId(DATABASE_1_ID)
                     .name("location")
@@ -5008,7 +4981,7 @@ public abstract class BaseTest {
                     .isNullAllowed(false)
                     .build(),
             ViewColumnDto.builder()
-                    .id(2L)
+                    .id(COLUMN_2_2_ID)
                     .ordinalPosition(1)
                     .databaseId(DATABASE_1_ID)
                     .name("lat")
@@ -5019,7 +4992,7 @@ public abstract class BaseTest {
                     .isNullAllowed(true)
                     .build(),
             ViewColumnDto.builder()
-                    .id(3L)
+                    .id(COLUMN_2_3_ID)
                     .ordinalPosition(2)
                     .databaseId(DATABASE_1_ID)
                     .name("lng")
@@ -5036,7 +5009,7 @@ public abstract class BaseTest {
             .isInitialView(VIEW_1_INITIAL_VIEW)
             .name(VIEW_1_NAME)
             .internalName(VIEW_1_INTERNAL_NAME)
-            .vdbid(VIEW_1_DATABASE_ID)
+            .vdbid(DATABASE_1_ID)
             .isPublic(VIEW_1_PUBLIC)
             .isSchemaPublic(VIEW_1_SCHEMA_PUBLIC)
             .query(VIEW_1_QUERY)
@@ -5068,7 +5041,7 @@ public abstract class BaseTest {
 
     public static final List<ViewColumn> VIEW_1_COLUMNS = List.of(
             ViewColumn.builder()
-                    .id(1L)
+                    .id(COLUMN_2_1_ID)
                     .ordinalPosition(0)
                     .name("location")
                     .internalName("location")
@@ -5078,7 +5051,7 @@ public abstract class BaseTest {
                     .view(VIEW_1)
                     .build(),
             ViewColumn.builder()
-                    .id(2L)
+                    .id(COLUMN_2_2_ID)
                     .ordinalPosition(1)
                     .name("lat")
                     .internalName("lat")
@@ -5089,7 +5062,7 @@ public abstract class BaseTest {
                     .view(VIEW_1)
                     .build(),
             ViewColumn.builder()
-                    .id(3L)
+                    .id(COLUMN_2_3_ID)
                     .ordinalPosition(2)
                     .name("lng")
                     .internalName("lng")
@@ -5106,7 +5079,7 @@ public abstract class BaseTest {
             .isInitialView(VIEW_1_INITIAL_VIEW)
             .name(VIEW_1_NAME)
             .internalName(VIEW_1_INTERNAL_NAME)
-            .vdbid(VIEW_1_DATABASE_ID)
+            .vdbid(DATABASE_1_ID)
             .isPublic(VIEW_1_PUBLIC)
             .isSchemaPublic(VIEW_1_SCHEMA_PUBLIC)
             .identifiers(null /* VIEW_1_DTO_IDENTIFIERS */)
@@ -5121,7 +5094,7 @@ public abstract class BaseTest {
             .isInitialView(VIEW_1_INITIAL_VIEW)
             .name(VIEW_1_NAME)
             .internalName(VIEW_1_INTERNAL_NAME)
-            .vdbid(VIEW_1_DATABASE_ID)
+            .vdbid(DATABASE_1_ID)
             .isPublic(VIEW_1_PUBLIC)
             .owner(USER_1_BRIEF_DTO)
             .query(VIEW_1_QUERY)
@@ -5136,7 +5109,7 @@ public abstract class BaseTest {
             .isInitialView(VIEW_1_INITIAL_VIEW)
             .name(VIEW_1_NAME)
             .internalName(VIEW_1_INTERNAL_NAME)
-            .vdbid(VIEW_1_DATABASE_ID)
+            .vdbid(DATABASE_1_ID)
             .isPublic(VIEW_1_PUBLIC)
             .isSchemaPublic(VIEW_1_SCHEMA_PUBLIC)
             .ownedBy(USER_1_ID)
@@ -5150,12 +5123,10 @@ public abstract class BaseTest {
             .query(VIEW_1_QUERY)
             .build();
 
-    public static final Long VIEW_2_ID = 2L;
+    public static final UUID VIEW_2_ID = UUID.fromString("1921a0a0-e4b0-4d12-a05f-be920af9b5ce");
     public static final Boolean VIEW_2_INITIAL_VIEW = false;
     public static final String VIEW_2_NAME = "JUnit2";
     public static final String VIEW_2_INTERNAL_NAME = "junit2";
-    public static final Long VIEW_2_CONTAINER_ID = CONTAINER_1_ID;
-    public static final Long VIEW_2_DATABASE_ID = DATABASE_1_ID;
     public static final Boolean VIEW_2_PUBLIC = true;
     public static final Boolean VIEW_2_SCHEMA_PUBLIC = true;
     public static final String VIEW_2_QUERY = "select `date`, `location` as loc, `mintemp`, `rainfall` from `weather_aus` where `location` = 'Albury'";
@@ -5163,7 +5134,7 @@ public abstract class BaseTest {
 
     public static final List<ViewColumnDto> VIEW_2_COLUMNS_DTO = List.of(
             ViewColumnDto.builder()
-                    .id(4L)
+                    .id(COLUMN_1_2_ID)
                     .databaseId(DATABASE_1_ID)
                     .ordinalPosition(0)
                     .name("Date")
@@ -5172,7 +5143,7 @@ public abstract class BaseTest {
                     .isNullAllowed(true)
                     .build(),
             ViewColumnDto.builder()
-                    .id(5L)
+                    .id(COLUMN_1_3_ID)
                     .databaseId(DATABASE_1_ID)
                     .ordinalPosition(1)
                     .name("loc")
@@ -5182,7 +5153,7 @@ public abstract class BaseTest {
                     .isNullAllowed(true)
                     .build(),
             ViewColumnDto.builder()
-                    .id(6L)
+                    .id(COLUMN_1_5_ID)
                     .databaseId(DATABASE_1_ID)
                     .ordinalPosition(2)
                     .name("Rainfall")
@@ -5193,7 +5164,7 @@ public abstract class BaseTest {
                     .isNullAllowed(true)
                     .build(),
             ViewColumnDto.builder()
-                    .id(7L)
+                    .id(COLUMN_1_4_ID)
                     .databaseId(DATABASE_1_ID)
                     .ordinalPosition(3)
                     .name("MinTemp")
@@ -5210,7 +5181,7 @@ public abstract class BaseTest {
             .isInitialView(VIEW_2_INITIAL_VIEW)
             .name(VIEW_2_NAME)
             .internalName(VIEW_2_INTERNAL_NAME)
-            .vdbid(VIEW_2_DATABASE_ID)
+            .vdbid(DATABASE_1_ID)
             .isPublic(VIEW_2_PUBLIC)
             .isSchemaPublic(VIEW_2_SCHEMA_PUBLIC)
             .columns(null)  /* VIEW_2_COLUMNS */
@@ -5222,7 +5193,7 @@ public abstract class BaseTest {
 
     public static final List<ViewColumn> VIEW_2_COLUMNS = List.of(
             ViewColumn.builder()
-                    .id(4L)
+                    .id(COLUMN_1_2_ID)
                     .ordinalPosition(0)
                     .name("Date")
                     .internalName("date")
@@ -5231,7 +5202,7 @@ public abstract class BaseTest {
                     .view(VIEW_2)
                     .build(),
             ViewColumn.builder()
-                    .id(5L)
+                    .id(COLUMN_1_3_ID)
                     .ordinalPosition(1)
                     .name("loc")
                     .internalName("loc")
@@ -5241,7 +5212,7 @@ public abstract class BaseTest {
                     .view(VIEW_2)
                     .build(),
             ViewColumn.builder()
-                    .id(6L)
+                    .id(COLUMN_1_5_ID)
                     .ordinalPosition(2)
                     .name("Rainfall")
                     .internalName("rainfall")
@@ -5252,7 +5223,7 @@ public abstract class BaseTest {
                     .view(VIEW_2)
                     .build(),
             ViewColumn.builder()
-                    .id(7L)
+                    .id(COLUMN_1_4_ID)
                     .ordinalPosition(3)
                     .name("MinTemp")
                     .internalName("mintemp")
@@ -5269,7 +5240,7 @@ public abstract class BaseTest {
             .isInitialView(VIEW_2_INITIAL_VIEW)
             .name(VIEW_2_NAME)
             .internalName(VIEW_2_INTERNAL_NAME)
-            .vdbid(VIEW_2_DATABASE_ID)
+            .vdbid(DATABASE_1_ID)
             .isPublic(VIEW_2_PUBLIC)
             .isSchemaPublic(VIEW_2_SCHEMA_PUBLIC)
             .columns(VIEW_2_COLUMNS_DTO)
@@ -5283,7 +5254,7 @@ public abstract class BaseTest {
             .isInitialView(VIEW_2_INITIAL_VIEW)
             .name(VIEW_2_NAME)
             .internalName(VIEW_2_INTERNAL_NAME)
-            .vdbid(VIEW_2_DATABASE_ID)
+            .vdbid(DATABASE_1_ID)
             .isPublic(VIEW_2_PUBLIC)
             .isSchemaPublic(VIEW_2_SCHEMA_PUBLIC)
             .owner(USER_2_BRIEF_DTO)
@@ -5299,7 +5270,7 @@ public abstract class BaseTest {
             .isInitialView(VIEW_2_INITIAL_VIEW)
             .name(VIEW_2_NAME)
             .internalName(VIEW_2_INTERNAL_NAME)
-            .vdbid(VIEW_2_DATABASE_ID)
+            .vdbid(DATABASE_1_ID)
             .isPublic(VIEW_2_PUBLIC)
             .isSchemaPublic(VIEW_2_SCHEMA_PUBLIC)
             .query(VIEW_2_QUERY)
@@ -5307,12 +5278,10 @@ public abstract class BaseTest {
             .ownedBy(USER_1_ID)
             .build();
 
-    public static final Long VIEW_3_ID = 3L;
+    public static final UUID VIEW_3_ID = UUID.fromString("88940939-d456-4aae-88a6-f2b6b343c614");
     public static final Boolean VIEW_3_INITIAL_VIEW = false;
     public static final String VIEW_3_NAME = "JUnit3";
     public static final String VIEW_3_INTERNAL_NAME = "junit3";
-    public static final Long VIEW_3_CONTAINER_ID = CONTAINER_1_ID;
-    public static final Long VIEW_3_DATABASE_ID = DATABASE_1_ID;
     public static final Boolean VIEW_3_PUBLIC = true;
     public static final Boolean VIEW_3_SCHEMA_PUBLIC = false;
     public static final String VIEW_3_QUERY = "select w.`mintemp`, w.`rainfall`, w.`location`, m.`date` from `weather_aus` w join `junit2` m on m.`location` = w.`location` and m.`date` = w.`date`";
@@ -5322,7 +5291,7 @@ public abstract class BaseTest {
 
     public static final List<ViewColumnDto> VIEW_3_COLUMNS_DTO = List.of(
             ViewColumnDto.builder()
-                    .id(8L)
+                    .id(COLUMN_1_4_ID)
                     .databaseId(DATABASE_1_ID)
                     .ordinalPosition(0)
                     .name("MinTemp")
@@ -5333,7 +5302,7 @@ public abstract class BaseTest {
                     .isNullAllowed(true)
                     .build(),
             ViewColumnDto.builder()
-                    .id(9L)
+                    .id(COLUMN_1_5_ID)
                     .databaseId(DATABASE_1_ID)
                     .ordinalPosition(1)
                     .name("Rainfall")
@@ -5344,7 +5313,7 @@ public abstract class BaseTest {
                     .isNullAllowed(true)
                     .build(),
             ViewColumnDto.builder()
-                    .id(10L)
+                    .id(COLUMN_1_3_ID)
                     .databaseId(DATABASE_1_ID)
                     .ordinalPosition(2)
                     .name("Location")
@@ -5354,7 +5323,7 @@ public abstract class BaseTest {
                     .isNullAllowed(true)
                     .build(),
             ViewColumnDto.builder()
-                    .id(11L)
+                    .id(COLUMN_1_2_ID)
                     .databaseId(DATABASE_1_ID)
                     .ordinalPosition(3)
                     .name("Date")
@@ -5369,7 +5338,7 @@ public abstract class BaseTest {
             .isInitialView(VIEW_3_INITIAL_VIEW)
             .name(VIEW_3_NAME)
             .internalName(VIEW_3_INTERNAL_NAME)
-            .vdbid(VIEW_3_DATABASE_ID)
+            .vdbid(DATABASE_1_ID)
             .isPublic(VIEW_3_PUBLIC)
             .isSchemaPublic(VIEW_3_SCHEMA_PUBLIC)
             .columns(null)  /* VIEW_3_COLUMNS */
@@ -5384,7 +5353,7 @@ public abstract class BaseTest {
             .isInitialView(VIEW_3_INITIAL_VIEW)
             .name(VIEW_3_NAME)
             .internalName(VIEW_3_INTERNAL_NAME)
-            .vdbid(VIEW_3_DATABASE_ID)
+            .vdbid(DATABASE_1_ID)
             .isPublic(VIEW_3_PUBLIC)
             .isSchemaPublic(VIEW_3_SCHEMA_PUBLIC)
             .owner(USER_1_BRIEF_DTO)
@@ -5397,7 +5366,7 @@ public abstract class BaseTest {
 
     public static final List<ViewColumn> VIEW_3_COLUMNS = List.of(
             ViewColumn.builder()
-                    .id(8L)
+                    .id(COLUMN_1_4_ID)
                     .ordinalPosition(0)
                     .name("MinTemp")
                     .internalName("mintemp")
@@ -5408,7 +5377,7 @@ public abstract class BaseTest {
                     .view(VIEW_3)
                     .build(),
             ViewColumn.builder()
-                    .id(9L)
+                    .id(COLUMN_1_5_ID)
                     .ordinalPosition(1)
                     .name("Rainfall")
                     .internalName("rainfall")
@@ -5419,7 +5388,7 @@ public abstract class BaseTest {
                     .view(VIEW_3)
                     .build(),
             ViewColumn.builder()
-                    .id(10L)
+                    .id(COLUMN_1_3_ID)
                     .ordinalPosition(2)
                     .name("Location")
                     .internalName("location")
@@ -5429,7 +5398,7 @@ public abstract class BaseTest {
                     .view(VIEW_3)
                     .build(),
             ViewColumn.builder()
-                    .id(11L)
+                    .id(COLUMN_1_2_ID)
                     .ordinalPosition(3)
                     .name("Date")
                     .internalName("date")
@@ -5444,7 +5413,7 @@ public abstract class BaseTest {
             .isInitialView(VIEW_3_INITIAL_VIEW)
             .name(VIEW_3_NAME)
             .internalName(VIEW_3_INTERNAL_NAME)
-            .vdbid(VIEW_3_DATABASE_ID)
+            .vdbid(DATABASE_1_ID)
             .isPublic(VIEW_3_PUBLIC)
             .isSchemaPublic(VIEW_3_SCHEMA_PUBLIC)
             .columns(VIEW_3_COLUMNS_DTO)
@@ -5458,7 +5427,7 @@ public abstract class BaseTest {
             .isInitialView(VIEW_3_INITIAL_VIEW)
             .name(VIEW_3_NAME)
             .internalName(VIEW_3_INTERNAL_NAME)
-            .vdbid(VIEW_3_DATABASE_ID)
+            .vdbid(DATABASE_1_ID)
             .isPublic(VIEW_3_PUBLIC)
             .isSchemaPublic(VIEW_3_SCHEMA_PUBLIC)
             .query(VIEW_3_QUERY)
@@ -5466,13 +5435,10 @@ public abstract class BaseTest {
             .ownedBy(USER_1_ID)
             .build();
 
-    public static final Long VIEW_4_ID = 4L;
+    public static final UUID VIEW_4_ID = UUID.fromString("13b36fa0-a65a-4ccf-80b1-5b3a2444a41a");
     public static final Boolean VIEW_4_INITIAL_VIEW = false;
     public static final String VIEW_4_NAME = "Mock View";
     public static final String VIEW_4_INTERNAL_NAME = "mock_view";
-    public static final Long VIEW_4_CONTAINER_ID = CONTAINER_2_ID;
-    public static final Long VIEW_4_DATABASE_ID = DATABASE_2_ID;
-    public static final Long VIEW_4_TABLE_ID = TABLE_5_ID;
     public static final Table VIEW_4_TABLE = TABLE_5;
     public static final Boolean VIEW_4_PUBLIC = true;
     public static final Boolean VIEW_4_SCHEMA_PUBLIC = false;
@@ -5481,7 +5447,7 @@ public abstract class BaseTest {
 
     public static final List<ViewColumnDto> VIEW_4_COLUMNS_DTO = List.of(
             ViewColumnDto.builder()
-                    .id(12L)
+                    .id(COLUMN_5_1_ID)
                     .databaseId(DATABASE_2_ID)
                     .ordinalPosition(0)
                     .name("Animal Name")
@@ -5490,7 +5456,7 @@ public abstract class BaseTest {
                     .isNullAllowed(true)
                     .build(),
             ViewColumnDto.builder()
-                    .id(13L)
+                    .id(COLUMN_5_2_ID)
                     .databaseId(DATABASE_2_ID)
                     .ordinalPosition(1)
                     .name("Hair")
@@ -5499,7 +5465,7 @@ public abstract class BaseTest {
                     .isNullAllowed(true)
                     .build(),
             ViewColumnDto.builder()
-                    .id(14L)
+                    .id(COLUMN_5_3_ID)
                     .databaseId(DATABASE_2_ID)
                     .ordinalPosition(2)
                     .name("Feathers")
@@ -5508,7 +5474,7 @@ public abstract class BaseTest {
                     .isNullAllowed(true)
                     .build(),
             ViewColumnDto.builder()
-                    .id(15L)
+                    .id(COLUMN_5_4_ID)
                     .databaseId(DATABASE_2_ID)
                     .ordinalPosition(3)
                     .name("Eggs")
@@ -5517,7 +5483,7 @@ public abstract class BaseTest {
                     .isNullAllowed(true)
                     .build(),
             ViewColumnDto.builder()
-                    .id(16L)
+                    .id(COLUMN_5_5_ID)
                     .databaseId(DATABASE_2_ID)
                     .ordinalPosition(4)
                     .name("Milk")
@@ -5526,7 +5492,7 @@ public abstract class BaseTest {
                     .isNullAllowed(true)
                     .build(),
             ViewColumnDto.builder()
-                    .id(17L)
+                    .id(COLUMN_5_6_ID)
                     .databaseId(DATABASE_2_ID)
                     .ordinalPosition(5)
                     .name("Airborne")
@@ -5535,7 +5501,7 @@ public abstract class BaseTest {
                     .isNullAllowed(true)
                     .build(),
             ViewColumnDto.builder()
-                    .id(18L)
+                    .id(COLUMN_5_7_ID)
                     .databaseId(DATABASE_2_ID)
                     .ordinalPosition(6)
                     .name("Aquantic")
@@ -5544,7 +5510,7 @@ public abstract class BaseTest {
                     .isNullAllowed(true)
                     .build(),
             ViewColumnDto.builder()
-                    .id(19L)
+                    .id(COLUMN_5_8_ID)
                     .databaseId(DATABASE_2_ID)
                     .ordinalPosition(7)
                     .name("Predator")
@@ -5553,7 +5519,7 @@ public abstract class BaseTest {
                     .isNullAllowed(true)
                     .build(),
             ViewColumnDto.builder()
-                    .id(20L)
+                    .id(COLUMN_5_9_ID)
                     .databaseId(DATABASE_2_ID)
                     .ordinalPosition(8)
                     .name("Backbone")
@@ -5562,7 +5528,7 @@ public abstract class BaseTest {
                     .isNullAllowed(true)
                     .build(),
             ViewColumnDto.builder()
-                    .id(21L)
+                    .id(COLUMN_5_10_ID)
                     .databaseId(DATABASE_2_ID)
                     .ordinalPosition(9)
                     .name("Breathes")
@@ -5571,7 +5537,7 @@ public abstract class BaseTest {
                     .isNullAllowed(true)
                     .build(),
             ViewColumnDto.builder()
-                    .id(22L)
+                    .id(COLUMN_5_11_ID)
                     .databaseId(DATABASE_2_ID)
                     .ordinalPosition(10)
                     .name("Venomous")
@@ -5580,7 +5546,7 @@ public abstract class BaseTest {
                     .isNullAllowed(true)
                     .build(),
             ViewColumnDto.builder()
-                    .id(23L)
+                    .id(COLUMN_5_12_ID)
                     .databaseId(DATABASE_2_ID)
                     .ordinalPosition(11)
                     .name("Fin")
@@ -5589,7 +5555,7 @@ public abstract class BaseTest {
                     .isNullAllowed(true)
                     .build(),
             ViewColumnDto.builder()
-                    .id(24L)
+                    .id(COLUMN_5_13_ID)
                     .databaseId(DATABASE_2_ID)
                     .ordinalPosition(12)
                     .name("Legs")
@@ -5598,7 +5564,7 @@ public abstract class BaseTest {
                     .isNullAllowed(true)
                     .build(),
             ViewColumnDto.builder()
-                    .id(25L)
+                    .id(COLUMN_5_14_ID)
                     .databaseId(DATABASE_2_ID)
                     .ordinalPosition(13)
                     .name("Tail")
@@ -5607,7 +5573,7 @@ public abstract class BaseTest {
                     .isNullAllowed(true)
                     .build(),
             ViewColumnDto.builder()
-                    .id(26L)
+                    .id(COLUMN_5_15_ID)
                     .databaseId(DATABASE_2_ID)
                     .ordinalPosition(14)
                     .name("Domestic")
@@ -5616,7 +5582,7 @@ public abstract class BaseTest {
                     .isNullAllowed(true)
                     .build(),
             ViewColumnDto.builder()
-                    .id(27L)
+                    .id(COLUMN_5_16_ID)
                     .databaseId(DATABASE_2_ID)
                     .ordinalPosition(15)
                     .name("Catsize")
@@ -5625,7 +5591,7 @@ public abstract class BaseTest {
                     .isNullAllowed(true)
                     .build(),
             ViewColumnDto.builder()
-                    .id(28L)
+                    .id(COLUMN_5_17_ID)
                     .databaseId(DATABASE_2_ID)
                     .ordinalPosition(16)
                     .name("Class Type")
@@ -5639,7 +5605,7 @@ public abstract class BaseTest {
             .isInitialView(VIEW_4_INITIAL_VIEW)
             .name(VIEW_4_NAME)
             .internalName(VIEW_4_INTERNAL_NAME)
-            .vdbid(VIEW_4_DATABASE_ID)
+            .vdbid(DATABASE_2_ID)
             .isPublic(VIEW_4_PUBLIC)
             .isSchemaPublic(VIEW_4_SCHEMA_PUBLIC)
             .query(VIEW_4_QUERY)
@@ -5654,7 +5620,7 @@ public abstract class BaseTest {
             .isInitialView(VIEW_4_INITIAL_VIEW)
             .name(VIEW_4_NAME)
             .internalName(VIEW_4_INTERNAL_NAME)
-            .vdbid(VIEW_4_DATABASE_ID)
+            .vdbid(DATABASE_2_ID)
             .isPublic(VIEW_4_PUBLIC)
             .isSchemaPublic(VIEW_4_SCHEMA_PUBLIC)
             .query(VIEW_4_QUERY)
@@ -5668,7 +5634,7 @@ public abstract class BaseTest {
             .isInitialView(VIEW_4_INITIAL_VIEW)
             .name(VIEW_4_NAME)
             .internalName(VIEW_4_INTERNAL_NAME)
-            .vdbid(VIEW_4_DATABASE_ID)
+            .vdbid(DATABASE_2_ID)
             .isPublic(VIEW_4_PUBLIC)
             .isSchemaPublic(VIEW_4_SCHEMA_PUBLIC)
             .query(VIEW_4_QUERY)
@@ -5678,7 +5644,7 @@ public abstract class BaseTest {
 
     public static final List<ViewColumn> VIEW_4_COLUMNS = List.of(
             ViewColumn.builder()
-                    .id(12L)
+                    .id(COLUMN_5_1_ID)
                     .ordinalPosition(0)
                     .name("Animal Name")
                     .internalName("animal_name")
@@ -5687,7 +5653,7 @@ public abstract class BaseTest {
                     .view(VIEW_4)
                     .build(),
             ViewColumn.builder()
-                    .id(13L)
+                    .id(COLUMN_5_2_ID)
                     .ordinalPosition(1)
                     .name("Hair")
                     .internalName("hair")
@@ -5696,7 +5662,7 @@ public abstract class BaseTest {
                     .view(VIEW_4)
                     .build(),
             ViewColumn.builder()
-                    .id(14L)
+                    .id(COLUMN_5_3_ID)
                     .ordinalPosition(2)
                     .name("Feathers")
                     .internalName("feathers")
@@ -5705,7 +5671,7 @@ public abstract class BaseTest {
                     .view(VIEW_4)
                     .build(),
             ViewColumn.builder()
-                    .id(15L)
+                    .id(COLUMN_5_4_ID)
                     .ordinalPosition(3)
                     .name("Eggs")
                     .internalName("eggs")
@@ -5714,7 +5680,7 @@ public abstract class BaseTest {
                     .view(VIEW_4)
                     .build(),
             ViewColumn.builder()
-                    .id(16L)
+                    .id(COLUMN_5_5_ID)
                     .ordinalPosition(4)
                     .name("Milk")
                     .internalName("milk")
@@ -5723,7 +5689,7 @@ public abstract class BaseTest {
                     .view(VIEW_4)
                     .build(),
             ViewColumn.builder()
-                    .id(17L)
+                    .id(COLUMN_5_6_ID)
                     .ordinalPosition(5)
                     .name("Airborne")
                     .internalName("airborne")
@@ -5732,7 +5698,7 @@ public abstract class BaseTest {
                     .view(VIEW_4)
                     .build(),
             ViewColumn.builder()
-                    .id(18L)
+                    .id(COLUMN_5_7_ID)
                     .ordinalPosition(6)
                     .name("Aquantic")
                     .internalName("aquantic")
@@ -5741,7 +5707,7 @@ public abstract class BaseTest {
                     .view(VIEW_4)
                     .build(),
             ViewColumn.builder()
-                    .id(19L)
+                    .id(COLUMN_5_8_ID)
                     .ordinalPosition(7)
                     .name("Predator")
                     .internalName("predator")
@@ -5750,7 +5716,7 @@ public abstract class BaseTest {
                     .view(VIEW_4)
                     .build(),
             ViewColumn.builder()
-                    .id(20L)
+                    .id(COLUMN_5_9_ID)
                     .ordinalPosition(8)
                     .name("Backbone")
                     .internalName("backbone")
@@ -5759,7 +5725,7 @@ public abstract class BaseTest {
                     .view(VIEW_4)
                     .build(),
             ViewColumn.builder()
-                    .id(21L)
+                    .id(COLUMN_5_10_ID)
                     .ordinalPosition(9)
                     .name("Breathes")
                     .internalName("breathes")
@@ -5768,7 +5734,7 @@ public abstract class BaseTest {
                     .view(VIEW_4)
                     .build(),
             ViewColumn.builder()
-                    .id(22L)
+                    .id(COLUMN_5_11_ID)
                     .ordinalPosition(10)
                     .name("Venomous")
                     .internalName("venomous")
@@ -5777,7 +5743,7 @@ public abstract class BaseTest {
                     .view(VIEW_4)
                     .build(),
             ViewColumn.builder()
-                    .id(23L)
+                    .id(COLUMN_5_12_ID)
                     .ordinalPosition(11)
                     .name("Fin")
                     .internalName("fin")
@@ -5786,7 +5752,7 @@ public abstract class BaseTest {
                     .view(VIEW_4)
                     .build(),
             ViewColumn.builder()
-                    .id(24L)
+                    .id(COLUMN_5_13_ID)
                     .ordinalPosition(12)
                     .name("Legs")
                     .internalName("legs")
@@ -5795,7 +5761,7 @@ public abstract class BaseTest {
                     .view(VIEW_4)
                     .build(),
             ViewColumn.builder()
-                    .id(25L)
+                    .id(COLUMN_5_14_ID)
                     .ordinalPosition(13)
                     .name("Tail")
                     .internalName("tail")
@@ -5804,7 +5770,7 @@ public abstract class BaseTest {
                     .view(VIEW_4)
                     .build(),
             ViewColumn.builder()
-                    .id(26L)
+                    .id(COLUMN_5_15_ID)
                     .ordinalPosition(14)
                     .name("Domestic")
                     .internalName("domestic")
@@ -5813,7 +5779,7 @@ public abstract class BaseTest {
                     .view(VIEW_4)
                     .build(),
             ViewColumn.builder()
-                    .id(27L)
+                    .id(COLUMN_5_16_ID)
                     .ordinalPosition(15)
                     .name("Catsize")
                     .internalName("catsize")
@@ -5822,7 +5788,7 @@ public abstract class BaseTest {
                     .view(VIEW_4)
                     .build(),
             ViewColumn.builder()
-                    .id(28L)
+                    .id(COLUMN_5_17_ID)
                     .ordinalPosition(16)
                     .name("Class Type")
                     .internalName("class_type")
@@ -5831,12 +5797,10 @@ public abstract class BaseTest {
                     .view(VIEW_4)
                     .build());
 
-    public static final Long VIEW_5_ID = 5L;
+    public static final UUID VIEW_5_ID = UUID.fromString("bc6b8507-51f1-4d05-bb0c-1f619a991dec");
     public static final Boolean VIEW_5_INITIAL_VIEW = false;
     public static final String VIEW_5_NAME = "Mock View";
     public static final String VIEW_5_INTERNAL_NAME = "mock_view";
-    public static final Long VIEW_5_CONTAINER_ID = CONTAINER_2_ID;
-    public static final Long VIEW_5_DATABASE_ID = DATABASE_3_ID;
     public static final Boolean VIEW_5_PUBLIC = true;
     public static final Boolean VIEW_5_SCHEMA_PUBLIC = true;
     public static final String VIEW_5_QUERY = "SELECT `location`, `lat`, `lng` FROM `weather_location` WHERE `location` = 'Albury'";
@@ -5847,7 +5811,7 @@ public abstract class BaseTest {
             .isInitialView(VIEW_5_INITIAL_VIEW)
             .name(VIEW_5_NAME)
             .internalName(VIEW_5_INTERNAL_NAME)
-            .vdbid(VIEW_5_DATABASE_ID)
+            .vdbid(DATABASE_3_ID)
             .isPublic(VIEW_5_PUBLIC)
             .isSchemaPublic(VIEW_5_SCHEMA_PUBLIC)
             .query(VIEW_5_QUERY)
@@ -5862,7 +5826,7 @@ public abstract class BaseTest {
             .isInitialView(VIEW_5_INITIAL_VIEW)
             .name(VIEW_5_NAME)
             .internalName(VIEW_5_INTERNAL_NAME)
-            .vdbid(VIEW_5_DATABASE_ID)
+            .vdbid(DATABASE_3_ID)
             .isPublic(VIEW_5_PUBLIC)
             .isSchemaPublic(VIEW_5_SCHEMA_PUBLIC)
             .query(VIEW_5_QUERY)
@@ -5876,7 +5840,7 @@ public abstract class BaseTest {
             .isInitialView(VIEW_5_INITIAL_VIEW)
             .name(VIEW_5_NAME)
             .internalName(VIEW_5_INTERNAL_NAME)
-            .vdbid(VIEW_5_DATABASE_ID)
+            .vdbid(DATABASE_3_ID)
             .isPublic(VIEW_5_PUBLIC)
             .isSchemaPublic(VIEW_5_SCHEMA_PUBLIC)
             .query(VIEW_5_QUERY)
@@ -5885,7 +5849,7 @@ public abstract class BaseTest {
 
     public static final List<ViewColumn> VIEW_5_COLUMNS = List.of(
             ViewColumn.builder()
-                    .id(29L)
+                    .id(COLUMN_2_1_ID)
                     .ordinalPosition(0)
                     .name("location")
                     .internalName("location")
@@ -5895,7 +5859,7 @@ public abstract class BaseTest {
                     .view(VIEW_5)
                     .build(),
             ViewColumn.builder()
-                    .id(30L)
+                    .id(COLUMN_2_2_ID)
                     .ordinalPosition(1)
                     .name("lat")
                     .internalName("lat")
@@ -5906,7 +5870,7 @@ public abstract class BaseTest {
                     .view(VIEW_5)
                     .build(),
             ViewColumn.builder()
-                    .id(31L)
+                    .id(COLUMN_2_3_ID)
                     .ordinalPosition(2)
                     .name("lng")
                     .internalName("lng")
@@ -5919,7 +5883,7 @@ public abstract class BaseTest {
 
     public static final List<ViewColumnDto> VIEW_5_COLUMNS_DTO = List.of(
             ViewColumnDto.builder()
-                    .id(29L)
+                    .id(COLUMN_2_1_ID)
                     .databaseId(DATABASE_3_ID)
                     .ordinalPosition(0)
                     .name("location")
@@ -5929,7 +5893,7 @@ public abstract class BaseTest {
                     .isNullAllowed(false)
                     .build(),
             ViewColumnDto.builder()
-                    .id(30L)
+                    .id(COLUMN_2_2_ID)
                     .databaseId(DATABASE_3_ID)
                     .ordinalPosition(1)
                     .name("lat")
@@ -5940,7 +5904,7 @@ public abstract class BaseTest {
                     .isNullAllowed(true)
                     .build(),
             ViewColumnDto.builder()
-                    .id(31L)
+                    .id(COLUMN_2_3_ID)
                     .databaseId(DATABASE_3_ID)
                     .ordinalPosition(2)
                     .name("lng")
@@ -5976,8 +5940,7 @@ public abstract class BaseTest {
             .uri(LICENSE_1_URI)
             .build();
 
-    public static final Long CREATOR_1_ID = 1L;
-    public static final Long CREATOR_1_QUERY_ID = 1L;
+    public static final UUID CREATOR_1_ID = UUID.fromString("a0417f34-80ff-419f-821d-ce179021484a");
     public static final String CREATOR_1_ORCID = "00000-00000-00000";
     public static final String CREATOR_1_AFFIL = "TU Graz";
     public static final String CREATOR_1_AFFIL_ROR = "https://ror.org/04wn28048";
@@ -6020,7 +5983,7 @@ public abstract class BaseTest {
                     .build())
             .build();
 
-    public static final Long CREATOR_2_ID = 2L;
+    public static final UUID CREATOR_2_ID = UUID.fromString("56b70dae-17a7-4f76-9c1e-a493762ba760");
     public static final Long CREATOR_2_QUERY_ID = 1L;
     public static final String CREATOR_2_ORCID = "00000-00000-00000";
     public static final String CREATOR_2_AFFIL = "TU Wien";
@@ -6030,7 +5993,7 @@ public abstract class BaseTest {
     public static final Instant CREATOR_2_CREATED = Instant.ofEpochSecond(1641588352L);
     public static final Instant CREATOR_2_MODIFIED = Instant.ofEpochSecond(1541588352L);
 
-    public static final Long CREATOR_3_ID = 3L;
+    public static final UUID CREATOR_3_ID = UUID.fromString("a2dfea46-7d88-4069-9b93-2417e1fb578b");
     public static final Long CREATOR_3_QUERY_ID = 1L;
     public static final String CREATOR_3_ORCID = "00000-00000-00000";
     public static final String CREATOR_3_AFFIL = "TU Graz";
@@ -6044,7 +6007,7 @@ public abstract class BaseTest {
     public static final Instant CREATOR_3_CREATED = Instant.ofEpochSecond(1641588352L);
     public static final Instant CREATOR_3_MODIFIED = Instant.ofEpochSecond(1541588352L);
 
-    public static final Long CREATOR_4_ID = 4L;
+    public static final UUID CREATOR_4_ID = UUID.fromString("473489fa-ad02-4e48-856f-5a3f83ff541d");
     public static final Long CREATOR_4_QUERY_ID = 1L;
     public static final String CREATOR_4_ORCID = "00000-00000-00000";
     public static final String CREATOR_4_AFFIL = "TU Wien";
@@ -6058,10 +6021,7 @@ public abstract class BaseTest {
     public static final Instant CREATOR_4_CREATED = Instant.ofEpochSecond(1641588352L);
     public static final Instant CREATOR_4_MODIFIED = Instant.ofEpochSecond(1541588352L);
 
-    public static final Long IDENTIFIER_1_ID = 1L;
-    public static final Long IDENTIFIER_1_QUERY_ID = null;
-    public static final Long IDENTIFIER_1_CONTAINER_ID = CONTAINER_1_ID;
-    public static final Long IDENTIFIER_1_DATABASE_ID = DATABASE_1_ID;
+    public static final UUID IDENTIFIER_1_ID = UUID.fromString("679a83f2-ef23-4b4b-98f7-ad77b9d68733");
     public static final String IDENTIFIER_1_DOI = "10.12345/183";
     public static final Instant IDENTIFIER_1_CREATED = Instant.ofEpochSecond(1641588352L) /* 2022-01-07 20:45:52 */;
     public static final Instant IDENTIFIER_1_MODIFIED = Instant.ofEpochSecond(1541588352L) /* 2022-01-07 20:45:52 */;
@@ -6080,8 +6040,7 @@ public abstract class BaseTest {
     public static final IdentifierStatusType IDENTIFIER_1_STATUS_TYPE = IdentifierStatusType.PUBLISHED;
     public static final IdentifierStatusTypeDto IDENTIFIER_1_STATUS_TYPE_DTO = IdentifierStatusTypeDto.PUBLISHED;
 
-    public static final Long IDENTIFIER_1_TITLE_1_ID = 1L;
-    public static final Long IDENTIFIER_1_TITLE_1_IDENTIFIER_ID = IDENTIFIER_1_ID;
+    public static final UUID IDENTIFIER_1_TITLE_1_ID = UUID.fromString("3df6b286-9bd2-4ae3-b8f4-29c217544bef");
     public static final String IDENTIFIER_1_TITLE_1_TITLE = "Austrian weather data";
     public static final String IDENTIFIER_1_TITLE_1_TITLE_MODIFY = "Austrian weather some data";
     public static final TitleType IDENTIFIER_1_TITLE_1_TYPE = null;
@@ -6122,8 +6081,7 @@ public abstract class BaseTest {
             .language(IDENTIFIER_1_TITLE_1_LANG_DTO)
             .build();
 
-    public static final Long IDENTIFIER_1_TITLE_2_ID = 2L;
-    public static final Long IDENTIFIER_1_TITLE_2_IDENTIFIER_ID = IDENTIFIER_1_ID;
+    public static final UUID IDENTIFIER_1_TITLE_2_ID = UUID.fromString("903a7e5b-8014-4b8a-b8fd-44f477880905");
     public static final String IDENTIFIER_1_TITLE_2_TITLE = "Österreichische Wetterdaten";
     public static final String IDENTIFIER_1_TITLE_2_TITLE_MODIFY = "Österreichische Wetterdaten übersetzt";
     public static final TitleType IDENTIFIER_1_TITLE_2_TYPE = TitleType.TRANSLATED_TITLE;
@@ -6164,8 +6122,7 @@ public abstract class BaseTest {
             .language(IDENTIFIER_1_TITLE_2_LANG_DTO)
             .build();
 
-    public static final Long IDENTIFIER_1_DESCRIPTION_1_ID = 1L;
-    public static final Long IDENTIFIER_1_DESCRIPTION_1_IDENTIFIER_ID = IDENTIFIER_1_ID;
+    public static final UUID IDENTIFIER_1_DESCRIPTION_1_ID = UUID.fromString("1c438756-93f0-4797-983c-175a17e18c2c");
     public static final String IDENTIFIER_1_DESCRIPTION_1_DESCRIPTION = "Selecting all from the weather Austrian table";
     public static final String IDENTIFIER_1_DESCRIPTION_1_DESCRIPTION_MODIFY = "Selecting some from the weather Austrian table";
     public static final DescriptionType IDENTIFIER_1_DESCRIPTION_1_TYPE = null;
@@ -6201,7 +6158,7 @@ public abstract class BaseTest {
             .language(IDENTIFIER_1_DESCRIPTION_1_LANG_DTO)
             .build();
 
-    public static final Long IDENTIFIER_1_CREATOR_1_ID = 1L;
+    public static final UUID IDENTIFIER_1_CREATOR_1_ID = UUID.fromString("667cd1d6-4f94-4808-b5cb-12e5ec0788d8");
     public static final String IDENTIFIER_1_CREATOR_1_FIRSTNAME = CREATOR_1_FIRSTNAME;
     public static final String IDENTIFIER_1_CREATOR_1_LASTNAME = CREATOR_1_LASTNAME;
     public static final String IDENTIFIER_1_CREATOR_1_NAME = CREATOR_1_NAME;
@@ -6255,7 +6212,7 @@ public abstract class BaseTest {
             .affiliationIdentifierScheme(IDENTIFIER_1_CREATOR_1_AFFILIATION_IDENTIFIER_SCHEME_DTO)
             .build();
 
-    public static final Long FUNDER_1_ID = 1L;
+    public static final UUID FUNDER_1_ID = UUID.fromString("8deb273d-6dd6-407d-970a-01534035ac01");
     public static final String FUNDER_1_NAME = "European Commission";
     public static final String FUNDER_1_IDENTIFIER = "https://doi.org/10.13039/501100000780";
     public static final String FUNDER_1_IDENTIFIER_ID_ONLY = "10.13039/501100000780";
@@ -6297,7 +6254,6 @@ public abstract class BaseTest {
 
     public static final Identifier IDENTIFIER_1 = Identifier.builder()
             .id(IDENTIFIER_1_ID)
-            .queryId(IDENTIFIER_1_QUERY_ID)
             .titles(new LinkedList<>(List.of(IDENTIFIER_1_TITLE_1, IDENTIFIER_1_TITLE_2)))
             .descriptions(new LinkedList<>(List.of(IDENTIFIER_1_DESCRIPTION_1)))
             .doi(IDENTIFIER_1_DOI)
@@ -6324,7 +6280,6 @@ public abstract class BaseTest {
 
     public static final Identifier IDENTIFIER_1_WITH_DOI = Identifier.builder()
             .id(IDENTIFIER_1_ID)
-            .queryId(IDENTIFIER_1_QUERY_ID)
             .descriptions(new LinkedList<>(List.of(IDENTIFIER_1_DESCRIPTION_1)))
             .titles(new LinkedList<>(List.of(IDENTIFIER_1_TITLE_1, IDENTIFIER_1_TITLE_2)))
             .doi(IDENTIFIER_1_DOI)
@@ -6351,7 +6306,6 @@ public abstract class BaseTest {
     public static final IdentifierDto IDENTIFIER_1_DTO = IdentifierDto.builder()
             .id(IDENTIFIER_1_ID)
             .databaseId(DATABASE_1_ID)
-            .queryId(IDENTIFIER_1_QUERY_ID)
             .descriptions(new LinkedList<>(List.of(IDENTIFIER_1_DESCRIPTION_1_DTO)))
             .titles(new LinkedList<>(List.of(IDENTIFIER_1_TITLE_1_DTO, IDENTIFIER_1_TITLE_2_DTO)))
             .doi(IDENTIFIER_1_DOI)
@@ -6375,7 +6329,6 @@ public abstract class BaseTest {
     public static final IdentifierBriefDto IDENTIFIER_1_BRIEF_DTO = IdentifierBriefDto.builder()
             .id(IDENTIFIER_1_ID)
             .databaseId(DATABASE_1_ID)
-            .queryId(IDENTIFIER_1_QUERY_ID)
             .titles(new LinkedList<>(List.of(IDENTIFIER_1_TITLE_1_DTO, IDENTIFIER_1_TITLE_2_DTO)))
             .doi(IDENTIFIER_1_DOI)
             .publicationYear(IDENTIFIER_1_PUBLICATION_YEAR)
@@ -6385,7 +6338,7 @@ public abstract class BaseTest {
             .build();
 
     public static final CreateIdentifierDto IDENTIFIER_1_CREATE_DTO = CreateIdentifierDto.builder()
-            .databaseId(IDENTIFIER_1_DATABASE_ID)
+            .databaseId(DATABASE_1_ID)
             .type(IDENTIFIER_1_TYPE_DTO)
             .publicationYear(IDENTIFIER_1_PUBLICATION_YEAR)
             .publisher(IDENTIFIER_1_PUBLISHER)
@@ -6402,7 +6355,7 @@ public abstract class BaseTest {
             .build();
 
     public static final CreateIdentifierDto IDENTIFIER_1_CREATE_WITH_DOI_DTO = CreateIdentifierDto.builder()
-            .databaseId(IDENTIFIER_1_DATABASE_ID)
+            .databaseId(DATABASE_1_ID)
             .type(IDENTIFIER_1_TYPE_DTO)
             .doi(IDENTIFIER_1_DOI)
             .publicationYear(IDENTIFIER_1_PUBLICATION_YEAR)
@@ -6420,7 +6373,7 @@ public abstract class BaseTest {
 
     public static final IdentifierSaveDto IDENTIFIER_1_SAVE_DTO = IdentifierSaveDto.builder()
             .id(IDENTIFIER_1_ID)
-            .databaseId(IDENTIFIER_1_DATABASE_ID)
+            .databaseId(DATABASE_1_ID)
             .descriptions(new LinkedList<>(List.of(IDENTIFIER_1_DESCRIPTION_1_CREATE_DTO)))
             .titles(new LinkedList<>(List.of(IDENTIFIER_1_TITLE_1_CREATE_DTO, IDENTIFIER_1_TITLE_2_CREATE_DTO)))
             .relatedIdentifiers(new LinkedList<>())
@@ -6435,7 +6388,7 @@ public abstract class BaseTest {
 
     public static final IdentifierSaveDto IDENTIFIER_1_SAVE_MODIFY_DTO = IdentifierSaveDto.builder()
             .id(IDENTIFIER_1_ID)
-            .databaseId(IDENTIFIER_1_DATABASE_ID)
+            .databaseId(DATABASE_1_ID)
             .descriptions(new LinkedList<>(List.of())) // <<<
             .titles(new LinkedList<>(List.of(IDENTIFIER_1_TITLE_1_CREATE_DTO))) // <<<
             .relatedIdentifiers(new LinkedList<>())
@@ -6448,10 +6401,7 @@ public abstract class BaseTest {
             .licenses(new LinkedList<>(List.of())) // <<<
             .build();
 
-    public static final Long IDENTIFIER_5_ID = 5L;
-    public static final Long IDENTIFIER_5_QUERY_ID = QUERY_2_ID;
-    public static final Long IDENTIFIER_5_CONTAINER_ID = CONTAINER_2_ID;
-    public static final Long IDENTIFIER_5_DATABASE_ID = DATABASE_2_ID;
+    public static final UUID IDENTIFIER_5_ID = UUID.fromString("e05bb4c9-ed26-48c9-bd91-5c48a93a04bd");
     public static final String IDENTIFIER_5_DOI = "10.12345/13/50BBFCFE08A12";
     public static final Instant IDENTIFIER_5_CREATED = Instant.ofEpochSecond(1641588352L);
     public static final Instant IDENTIFIER_5_MODIFIED = Instant.ofEpochSecond(1541588352L);
@@ -6471,8 +6421,7 @@ public abstract class BaseTest {
     public static final IdentifierStatusTypeDto IDENTIFIER_5_STATUS_TYPE_DTO = IdentifierStatusTypeDto.DRAFT;
     public static final UUID IDENTIFIER_5_CREATED_BY = USER_2_ID;
 
-    public static final Long IDENTIFIER_5_TITLE_1_ID = 3L;
-    public static final Long IDENTIFIER_5_TITLE_1_IDENTIFIER_ID = IDENTIFIER_5_ID;
+    public static final UUID IDENTIFIER_5_TITLE_1_ID = UUID.fromString("1a0ae9c2-61c6-44f8-b886-26a4f4dabc52");
     public static final String IDENTIFIER_5_TITLE_1_TITLE = "Australische Wetterdaten";
     public static final LanguageType IDENTIFIER_5_TITLE_1_LANG = LanguageType.DE;
     public static final LanguageTypeDto IDENTIFIER_5_TITLE_1_LANG_DTO = LanguageTypeDto.DE;
@@ -6499,8 +6448,7 @@ public abstract class BaseTest {
             .titleType(IDENTIFIER_5_TITLE_1_TYPE_DTO)
             .build();
 
-    public static final Long IDENTIFIER_5_DESCRIPTION_1_ID = 2L;
-    public static final Long IDENTIFIER_5_DESCRIPTION_1_IDENTIFIER_ID = IDENTIFIER_5_ID;
+    public static final UUID IDENTIFIER_5_DESCRIPTION_1_ID = UUID.fromString("ab49bdca-f373-4823-9947-2a0cbfa88350");
     public static final String IDENTIFIER_5_DESCRIPTION_1_DESCRIPTION = "Alle Wetterdaten in Australien";
     public static final LanguageType IDENTIFIER_5_DESCRIPTION_1_LANG = LanguageType.DE;
     public static final LanguageTypeDto IDENTIFIER_5_DESCRIPTION_1_LANG_DTO = LanguageTypeDto.DE;
@@ -6528,7 +6476,7 @@ public abstract class BaseTest {
             .descriptionType(IDENTIFIER_5_DESCRIPTION_1_TYPE_DTO)
             .build();
 
-    public static final Long IDENTIFIER_5_CREATOR_1_ID = 2L;
+    public static final UUID IDENTIFIER_5_CREATOR_1_ID = UUID.fromString("6844b684-93e4-47d2-a615-5939127fdafe");
 
     public static final Creator IDENTIFIER_5_CREATOR_1 = Creator.builder()
             .id(IDENTIFIER_5_CREATOR_1_ID)
@@ -6574,7 +6522,7 @@ public abstract class BaseTest {
             .affiliation(CREATOR_1_AFFIL)
             .build();
 
-    public static final Long IDENTIFIER_5_CREATOR_2_ID = 3L;
+    public static final UUID IDENTIFIER_5_CREATOR_2_ID = UUID.fromString("14943ad6-a935-49f5-b07e-f9eb789b8604");
 
     public static final Creator IDENTIFIER_5_CREATOR_2 = Creator.builder()
             .id(IDENTIFIER_5_CREATOR_2_ID)
@@ -6616,7 +6564,8 @@ public abstract class BaseTest {
 
     public static final Identifier IDENTIFIER_5 = Identifier.builder()
             .id(IDENTIFIER_5_ID)
-            .queryId(IDENTIFIER_5_QUERY_ID)
+            .queryId(QUERY_2_ID)
+            .database(null) /* DATABASE_2 */
             .descriptions(new LinkedList<>(List.of(IDENTIFIER_5_DESCRIPTION_1)))
             .titles(new LinkedList<>(List.of(IDENTIFIER_5_TITLE_1)))
             .doi(IDENTIFIER_5_DOI)
@@ -6642,7 +6591,7 @@ public abstract class BaseTest {
     public static final IdentifierDto IDENTIFIER_5_DTO = IdentifierDto.builder()
             .id(IDENTIFIER_5_ID)
             .databaseId(DATABASE_2_ID)
-            .queryId(IDENTIFIER_5_QUERY_ID)
+            .queryId(QUERY_2_ID)
             .descriptions(new LinkedList<>(List.of(IDENTIFIER_5_DESCRIPTION_1_DTO)))
             .titles(new LinkedList<>(List.of(IDENTIFIER_5_TITLE_1_DTO)))
             .doi(IDENTIFIER_5_DOI)
@@ -6665,7 +6614,7 @@ public abstract class BaseTest {
     public static final IdentifierBriefDto IDENTIFIER_5_BRIEF_DTO = IdentifierBriefDto.builder()
             .id(IDENTIFIER_5_ID)
             .databaseId(DATABASE_2_ID)
-            .queryId(IDENTIFIER_5_QUERY_ID)
+            .queryId(QUERY_2_ID)
             .titles(new LinkedList<>(List.of(IDENTIFIER_5_TITLE_1_DTO)))
             .doi(IDENTIFIER_5_DOI)
             .publicationYear(IDENTIFIER_5_PUBLICATION_YEAR)
@@ -6673,8 +6622,7 @@ public abstract class BaseTest {
             .type(IDENTIFIER_5_TYPE_DTO)
             .build();
 
-    public static final Long RELATED_IDENTIFIER_5_ID = 1L;
-    public static final Long RELATED_IDENTIFIER_5_IDENTIFIER_ID = 2L;
+    public static final UUID RELATED_IDENTIFIER_5_ID = UUID.fromString("26545877-574d-44fa-819d-d9d9a9750b38");
     public static final String RELATED_IDENTIFIER_5_VALUE = "10.5281/zenodo.6637333";
     public static final RelatedType RELATED_IDENTIFIER_5_TYPE = RelatedType.DOI;
     public static final RelatedTypeDto RELATED_IDENTIFIER_5_TYPE_DTO = RelatedTypeDto.DOI;
@@ -6696,15 +6644,15 @@ public abstract class BaseTest {
             .build();
 
     public static final CreateIdentifierDto IDENTIFIER_5_CREATE_DTO = CreateIdentifierDto.builder()
-            .databaseId(IDENTIFIER_5_DATABASE_ID)
+            .databaseId(DATABASE_2_ID)
             .publicationYear(IDENTIFIER_5_PUBLICATION_YEAR)
             .publisher(IDENTIFIER_5_PUBLISHER)
             .build();
 
     public static final IdentifierSaveDto IDENTIFIER_5_SAVE_DTO = IdentifierSaveDto.builder()
             .id(IDENTIFIER_5_ID)
-            .queryId(IDENTIFIER_5_QUERY_ID)
-            .databaseId(IDENTIFIER_5_DATABASE_ID)
+            .queryId(QUERY_2_ID)
+            .databaseId(DATABASE_2_ID)
             .descriptions(new LinkedList<>(List.of(IDENTIFIER_5_DESCRIPTION_1_CREATE_DTO)))
             .titles(new LinkedList<>(List.of(IDENTIFIER_5_TITLE_1_CREATE_DTO)))
             .relatedIdentifiers(new LinkedList<>(List.of(IDENTIFIER_1_RELATED_IDENTIFIER_5_CREATE_DTO)))
@@ -6717,10 +6665,7 @@ public abstract class BaseTest {
             .type(IDENTIFIER_5_TYPE_DTO)
             .build();
 
-    public static final Long IDENTIFIER_6_ID = 6L;
-    public static final Long IDENTIFIER_6_QUERY_ID = QUERY_3_ID;
-    public static final Long IDENTIFIER_6_CONTAINER_ID = CONTAINER_3_ID;
-    public static final Long IDENTIFIER_6_DATABASE_ID = DATABASE_3_ID;
+    public static final UUID IDENTIFIER_6_ID = UUID.fromString("a244204d-9671-42a0-be07-9b14402238fd");
     public static final String IDENTIFIER_6_DOI = null;
     public static final Instant IDENTIFIER_6_CREATED = Instant.ofEpochSecond(1641588352L);
     public static final Instant IDENTIFIER_6_MODIFIED = Instant.ofEpochSecond(1541588352L);
@@ -6739,8 +6684,7 @@ public abstract class BaseTest {
     public static final IdentifierStatusType IDENTIFIER_6_STATUS_TYPE = IdentifierStatusType.PUBLISHED;
     public static final IdentifierStatusTypeDto IDENTIFIER_6_STATUS_TYPE_DTO = IdentifierStatusTypeDto.PUBLISHED;
 
-    public static final Long IDENTIFIER_6_TITLE_1_ID = 4L;
-    public static final Long IDENTIFIER_6_TITLE_1_IDENTIFIER_ID = IDENTIFIER_6_ID;
+    public static final UUID IDENTIFIER_6_TITLE_1_ID = UUID.fromString("0449011c-1490-4c8e-b46c-c1f862126aea");
     public static final String IDENTIFIER_6_TITLE_1_TITLE = "Norwegian weather data";
     public static final String IDENTIFIER_6_TITLE_1_TITLE_MODIFY = "Norwegian weather some data";
     public static final LanguageType IDENTIFIER_6_TITLE_1_LANG = LanguageType.EN;
@@ -6769,8 +6713,7 @@ public abstract class BaseTest {
             .language(IDENTIFIER_6_TITLE_1_LANG_DTO)
             .build();
 
-    public static final Long IDENTIFIER_6_DESCRIPTION_1_ID = 3L;
-    public static final Long IDENTIFIER_6_DESCRIPTION_1_IDENTIFIER_ID = IDENTIFIER_6_ID;
+    public static final UUID IDENTIFIER_6_DESCRIPTION_1_ID = UUID.fromString("aac03bbd-27e6-419d-8118-f996d594f00f");
     public static final String IDENTIFIER_6_DESCRIPTION_1_DESCRIPTION = "Selecting all from the weather Norwegian table";
     public static final String IDENTIFIER_6_DESCRIPTION_1_DESCRIPTION_MODIFY = "Selecting some from the weather Norwegian table";
     public static final LanguageType IDENTIFIER_6_DESCRIPTION_1_LANG = LanguageType.EN;
@@ -6800,7 +6743,7 @@ public abstract class BaseTest {
             .language(IDENTIFIER_6_DESCRIPTION_1_LANG_DTO)
             .build();
 
-    private final static Long IDENTIFIER_6_CREATOR_1_ID = 4L;
+    private final static UUID IDENTIFIER_6_CREATOR_1_ID = UUID.fromString("f8a52dca-8aec-46c1-b0e1-603dbe6a1a65");
 
     public static final Creator IDENTIFIER_6_CREATOR_1 = Creator.builder()
             .id(IDENTIFIER_6_CREATOR_1_ID)
@@ -6850,7 +6793,7 @@ public abstract class BaseTest {
             .affiliationIdentifierScheme(CREATOR_1_AFFIL_TYPE_DTO)
             .build();
 
-    private final static Long IDENTIFIER_6_CREATOR_2_ID = 5L;
+    private final static UUID IDENTIFIER_6_CREATOR_2_ID = UUID.fromString("eeae78cb-75a1-42e2-b608-7082e5fbecc6");
 
     public static final Creator IDENTIFIER_6_CREATOR_2 = Creator.builder()
             .id(IDENTIFIER_6_CREATOR_2_ID)
@@ -6872,7 +6815,7 @@ public abstract class BaseTest {
             .affiliation(CREATOR_2_AFFIL)
             .build();
 
-    private final static Long IDENTIFIER_6_CREATOR_3_ID = 6L;
+    private final static UUID IDENTIFIER_6_CREATOR_3_ID = UUID.fromString("700058f1-6314-4cd1-9c0c-62e75c8f422b");
 
     public static final Creator IDENTIFIER_6_CREATOR_3 = Creator.builder()
             .id(IDENTIFIER_6_CREATOR_3_ID)
@@ -6902,7 +6845,7 @@ public abstract class BaseTest {
 
     public static final Identifier IDENTIFIER_6 = Identifier.builder()
             .id(IDENTIFIER_6_ID)
-            .queryId(IDENTIFIER_6_QUERY_ID)
+            .queryId(QUERY_3_ID)
             .descriptions(new LinkedList<>(List.of(IDENTIFIER_6_DESCRIPTION_1)))
             .titles(new LinkedList<>(List.of(IDENTIFIER_6_TITLE_1)))
             .doi(IDENTIFIER_6_DOI)
@@ -6929,7 +6872,7 @@ public abstract class BaseTest {
     public static final IdentifierDto IDENTIFIER_6_DTO = IdentifierDto.builder()
             .id(IDENTIFIER_6_ID)
             .databaseId(DATABASE_3_ID)
-            .queryId(IDENTIFIER_6_QUERY_ID)
+            .queryId(QUERY_3_ID)
             .descriptions(new LinkedList<>(List.of(IDENTIFIER_6_DESCRIPTION_1_DTO)))
             .titles(new LinkedList<>(List.of(IDENTIFIER_6_TITLE_1_DTO)))
             .doi(IDENTIFIER_6_DOI)
@@ -6954,7 +6897,7 @@ public abstract class BaseTest {
     public static final IdentifierBriefDto IDENTIFIER_6_BRIEF_DTO = IdentifierBriefDto.builder()
             .id(IDENTIFIER_6_ID)
             .databaseId(DATABASE_3_ID)
-            .queryId(IDENTIFIER_6_QUERY_ID)
+            .queryId(QUERY_3_ID)
             .titles(new LinkedList<>(List.of(IDENTIFIER_6_TITLE_1_DTO)))
             .doi(IDENTIFIER_6_DOI)
             .publicationYear(IDENTIFIER_6_PUBLICATION_YEAR)
@@ -6964,15 +6907,15 @@ public abstract class BaseTest {
             .build();
 
     public static final CreateIdentifierDto IDENTIFIER_6_CREATE_DTO = CreateIdentifierDto.builder()
-            .databaseId(IDENTIFIER_6_DATABASE_ID)
+            .databaseId(DATABASE_3_ID)
             .publicationYear(IDENTIFIER_6_PUBLICATION_YEAR)
             .publisher(IDENTIFIER_6_PUBLISHER)
             .build();
 
     public static final IdentifierSaveDto IDENTIFIER_6_SAVE_DTO = IdentifierSaveDto.builder()
             .id(IDENTIFIER_6_ID)
-            .databaseId(IDENTIFIER_6_DATABASE_ID)
-            .queryId(IDENTIFIER_6_QUERY_ID)
+            .databaseId(DATABASE_3_ID)
+            .queryId(QUERY_3_ID)
             .descriptions(new LinkedList<>(List.of(IDENTIFIER_6_DESCRIPTION_1_CREATE_DTO)))
             .titles(new LinkedList<>(List.of(IDENTIFIER_6_TITLE_1_CREATE_DTO)))
             .relatedIdentifiers(new LinkedList<>())
@@ -6984,8 +6927,7 @@ public abstract class BaseTest {
             .licenses(new LinkedList<>(List.of(LICENSE_1_DTO)))
             .build();
 
-    public static final Long IDENTIFIER_7_ID = 7L;
-    public static final Long IDENTIFIER_7_DATABASE_ID = DATABASE_4_ID;
+    public static final UUID IDENTIFIER_7_ID = UUID.fromString("b216ae00-a31d-4ecb-95fb-37eb4da3946f");
     public static final String IDENTIFIER_7_DOI = null;
     public static final Instant IDENTIFIER_7_CREATED = Instant.ofEpochSecond(1641588352L);
     public static final Instant IDENTIFIER_7_MODIFIED = Instant.ofEpochSecond(1541588352L);
@@ -7009,7 +6951,7 @@ public abstract class BaseTest {
                     .build())
             .build();
 
-    private final static Long IDENTIFIER_7_CREATOR_1_ID = 6L;
+    private final static UUID IDENTIFIER_7_CREATOR_1_ID = UUID.fromString("b899c367-06c7-4f47-8aea-5f15061ee3ee");
 
     public static final Creator IDENTIFIER_7_CREATOR_1 = Creator.builder()
             .id(IDENTIFIER_7_CREATOR_1_ID)
@@ -7069,14 +7011,14 @@ public abstract class BaseTest {
             .build();
 
     public static final CreateIdentifierDto IDENTIFIER_7_CREATE_DTO = CreateIdentifierDto.builder()
-            .databaseId(IDENTIFIER_7_DATABASE_ID)
+            .databaseId(DATABASE_4_ID)
             .publicationYear(IDENTIFIER_7_PUBLICATION_YEAR)
             .publisher(IDENTIFIER_7_PUBLISHER)
             .build();
 
     public static final IdentifierSaveDto IDENTIFIER_7_SAVE_DTO = IdentifierSaveDto.builder()
             .id(IDENTIFIER_7_ID)
-            .databaseId(IDENTIFIER_7_DATABASE_ID)
+            .databaseId(DATABASE_4_ID)
             .descriptions(new LinkedList<>())
             .titles(new LinkedList<>())
             .relatedIdentifiers(new LinkedList<>())
@@ -7089,8 +7031,7 @@ public abstract class BaseTest {
             .type(IDENTIFIER_7_TYPE_DTO)
             .build();
 
-    public static final Long IDENTIFIER_2_ID = 2L;
-    public static final Long IDENTIFIER_2_DATABASE_ID = DATABASE_1_ID;
+    public static final UUID IDENTIFIER_2_ID = UUID.fromString("fdb95f60-48e7-4e74-8122-d3c8d079c889");
     public static final String IDENTIFIER_2_DOI = null;
     public static final Instant IDENTIFIER_2_CREATED = Instant.ofEpochSecond(1651588352L);
     public static final Instant IDENTIFIER_2_MODIFIED = Instant.ofEpochSecond(1551588352L);
@@ -7101,7 +7042,6 @@ public abstract class BaseTest {
     public static final String IDENTIFIER_2_QUERY_HASH = QUERY_1_QUERY_HASH;
     public static final String IDENTIFIER_2_RESULT_HASH = QUERY_1_RESULT_HASH;
     public static final String IDENTIFIER_2_QUERY = QUERY_1_STATEMENT;
-    public static final Long IDENTIFIER_2_QUERY_ID = QUERY_1_ID;
     public static final String IDENTIFIER_2_NORMALIZED = QUERY_1_STATEMENT;
     public static final Long IDENTIFIER_2_RESULT_NUMBER = QUERY_1_RESULT_NUMBER;
     public static final String IDENTIFIER_2_PUBLISHER = "Swedish Government";
@@ -7112,8 +7052,8 @@ public abstract class BaseTest {
     public static final UUID IDENTIFIER_2_CREATED_BY = USER_1_ID;
 
     public static final CreateIdentifierDto IDENTIFIER_2_CREATE_DTO = CreateIdentifierDto.builder()
-            .databaseId(IDENTIFIER_2_DATABASE_ID)
-            .queryId(IDENTIFIER_2_QUERY_ID)
+            .databaseId(DATABASE_1_ID)
+            .queryId(QUERY_1_ID)
             .type(IDENTIFIER_2_TYPE_DTO)
             .publicationYear(IDENTIFIER_2_PUBLICATION_YEAR)
             .publisher(IDENTIFIER_2_PUBLISHER)
@@ -7121,7 +7061,7 @@ public abstract class BaseTest {
 
     public static final Identifier IDENTIFIER_2 = Identifier.builder()
             .id(IDENTIFIER_2_ID)
-            .queryId(IDENTIFIER_2_QUERY_ID)
+            .queryId(QUERY_1_ID)
             .descriptions(new LinkedList<>())
             .titles(new LinkedList<>())
             .doi(IDENTIFIER_2_DOI)
@@ -7148,8 +7088,8 @@ public abstract class BaseTest {
 
     public static final IdentifierDto IDENTIFIER_2_DTO = IdentifierDto.builder()
             .id(IDENTIFIER_2_ID)
-            .queryId(IDENTIFIER_2_QUERY_ID)
-            .databaseId(IDENTIFIER_2_DATABASE_ID)
+            .queryId(QUERY_1_ID)
+            .databaseId(DATABASE_1_ID)
             .descriptions(new LinkedList<>())
             .titles(new LinkedList<>())
             .doi(IDENTIFIER_2_DOI)
@@ -7172,8 +7112,8 @@ public abstract class BaseTest {
 
     public static final IdentifierBriefDto IDENTIFIER_2_BRIEF_DTO = IdentifierBriefDto.builder()
             .id(IDENTIFIER_2_ID)
-            .queryId(IDENTIFIER_2_QUERY_ID)
-            .databaseId(IDENTIFIER_2_DATABASE_ID)
+            .queryId(QUERY_1_ID)
+            .databaseId(DATABASE_1_ID)
             .titles(new LinkedList<>())
             .doi(IDENTIFIER_2_DOI)
             .publicationYear(IDENTIFIER_2_PUBLICATION_YEAR)
@@ -7184,8 +7124,8 @@ public abstract class BaseTest {
 
     public static final IdentifierSaveDto IDENTIFIER_2_SAVE_DTO = IdentifierSaveDto.builder()
             .id(IDENTIFIER_2_ID)
-            .databaseId(IDENTIFIER_2_DATABASE_ID)
-            .queryId(IDENTIFIER_2_QUERY_ID)
+            .databaseId(DATABASE_1_ID)
+            .queryId(QUERY_1_ID)
             .descriptions(new LinkedList<>())
             .titles(new LinkedList<>())
             .relatedIdentifiers(new LinkedList<>())
@@ -7198,9 +7138,7 @@ public abstract class BaseTest {
             .queryId(QUERY_1_ID)
             .build();
 
-    public static final Long IDENTIFIER_3_ID = 3L;
-    public static final Long IDENTIFIER_3_DATABASE_ID = DATABASE_1_ID;
-    public static final Long IDENTIFIER_3_VIEW_ID = VIEW_1_ID;
+    public static final UUID IDENTIFIER_3_ID = UUID.fromString("e2d831c2-3694-4fdc-8c48-7a7e94b73c43");
     public static final String IDENTIFIER_3_DOI = null;
     public static final Instant IDENTIFIER_3_CREATED = Instant.ofEpochSecond(1651588352L);
     public static final Instant IDENTIFIER_3_MODIFIED = Instant.ofEpochSecond(1551588352L);
@@ -7222,7 +7160,7 @@ public abstract class BaseTest {
 
     public static final Identifier IDENTIFIER_3 = Identifier.builder()
             .id(IDENTIFIER_3_ID)
-            .viewId(IDENTIFIER_3_VIEW_ID)
+            .viewId(VIEW_1_ID)
             .descriptions(new LinkedList<>())
             .titles(new LinkedList<>())
             .doi(IDENTIFIER_3_DOI)
@@ -7249,8 +7187,8 @@ public abstract class BaseTest {
 
     public static final IdentifierDto IDENTIFIER_3_DTO = IdentifierDto.builder()
             .id(IDENTIFIER_3_ID)
-            .databaseId(IDENTIFIER_3_DATABASE_ID)
-            .viewId(IDENTIFIER_3_VIEW_ID)
+            .databaseId(DATABASE_1_ID)
+            .viewId(VIEW_1_ID)
             .descriptions(new LinkedList<>())
             .titles(new LinkedList<>())
             .doi(IDENTIFIER_3_DOI)
@@ -7273,8 +7211,8 @@ public abstract class BaseTest {
 
     public static final IdentifierBriefDto IDENTIFIER_3_BRIEF_DTO = IdentifierBriefDto.builder()
             .id(IDENTIFIER_3_ID)
-            .databaseId(IDENTIFIER_3_DATABASE_ID)
-            .viewId(IDENTIFIER_3_VIEW_ID)
+            .databaseId(DATABASE_1_ID)
+            .viewId(VIEW_1_ID)
             .titles(new LinkedList<>())
             .doi(IDENTIFIER_3_DOI)
             .publicationYear(IDENTIFIER_3_PUBLICATION_YEAR)
@@ -7284,8 +7222,8 @@ public abstract class BaseTest {
             .build();
 
     public static final CreateIdentifierDto IDENTIFIER_3_CREATE_DTO = CreateIdentifierDto.builder()
-            .databaseId(IDENTIFIER_3_DATABASE_ID)
-            .viewId(IDENTIFIER_3_VIEW_ID)
+            .databaseId(DATABASE_1_ID)
+            .viewId(VIEW_1_ID)
             .type(IDENTIFIER_3_TYPE_DTO)
             .publicationYear(IDENTIFIER_3_PUBLICATION_YEAR)
             .publisher(IDENTIFIER_3_PUBLISHER)
@@ -7293,8 +7231,8 @@ public abstract class BaseTest {
 
     public static final IdentifierSaveDto IDENTIFIER_3_SAVE_DTO = IdentifierSaveDto.builder()
             .id(IDENTIFIER_3_ID)
-            .databaseId(IDENTIFIER_3_DATABASE_ID)
-            .viewId(IDENTIFIER_3_VIEW_ID)
+            .databaseId(DATABASE_1_ID)
+            .viewId(VIEW_1_ID)
             .descriptions(new LinkedList<>())
             .titles(new LinkedList<>())
             .relatedIdentifiers(new LinkedList<>())
@@ -7306,9 +7244,7 @@ public abstract class BaseTest {
             .licenses(new LinkedList<>(List.of(LICENSE_1_DTO)))
             .build();
 
-    public static final Long IDENTIFIER_4_ID = 4L;
-    public static final Long IDENTIFIER_4_DATABASE_ID = DATABASE_1_ID;
-    public static final Long IDENTIFIER_4_TABLE_ID = TABLE_1_ID;
+    public static final UUID IDENTIFIER_4_ID = UUID.fromString("3bd69bb8-f7e3-48e4-9717-823787e7ba23");
     public static final String IDENTIFIER_4_DOI = null;
     public static final Instant IDENTIFIER_4_CREATED = Instant.ofEpochSecond(1751588352L);
     public static final Instant IDENTIFIER_4_MODIFIED = Instant.ofEpochSecond(1551588352L);
@@ -7327,7 +7263,7 @@ public abstract class BaseTest {
 
     public static final Identifier IDENTIFIER_4 = Identifier.builder()
             .id(IDENTIFIER_4_ID)
-            .tableId(IDENTIFIER_4_TABLE_ID)
+            .tableId(TABLE_1_ID)
             .descriptions(new LinkedList<>())
             .titles(new LinkedList<>())
             .doi(IDENTIFIER_4_DOI)
@@ -7351,8 +7287,8 @@ public abstract class BaseTest {
 
     public static final IdentifierDto IDENTIFIER_4_DTO = IdentifierDto.builder()
             .id(IDENTIFIER_4_ID)
-            .databaseId(IDENTIFIER_4_DATABASE_ID)
-            .tableId(IDENTIFIER_4_TABLE_ID)
+            .databaseId(DATABASE_1_ID)
+            .tableId(TABLE_1_ID)
             .descriptions(new LinkedList<>())
             .titles(new LinkedList<>())
             .doi(IDENTIFIER_4_DOI)
@@ -7372,8 +7308,8 @@ public abstract class BaseTest {
 
     public static final IdentifierBriefDto IDENTIFIER_4_BRIEF_DTO = IdentifierBriefDto.builder()
             .id(IDENTIFIER_4_ID)
-            .databaseId(IDENTIFIER_4_DATABASE_ID)
-            .tableId(IDENTIFIER_4_TABLE_ID)
+            .databaseId(DATABASE_1_ID)
+            .tableId(TABLE_1_ID)
             .titles(new LinkedList<>())
             .doi(IDENTIFIER_4_DOI)
             .publicationYear(IDENTIFIER_4_PUBLICATION_YEAR)
@@ -7383,15 +7319,15 @@ public abstract class BaseTest {
             .build();
 
     public static final CreateIdentifierDto IDENTIFIER_4_CREATE_DTO = CreateIdentifierDto.builder()
-            .databaseId(IDENTIFIER_4_DATABASE_ID)
+            .databaseId(DATABASE_1_ID)
             .publicationYear(IDENTIFIER_4_PUBLICATION_YEAR)
             .publisher(IDENTIFIER_4_PUBLISHER)
             .build();
 
     public static final IdentifierSaveDto IDENTIFIER_4_SAVE_DTO = IdentifierSaveDto.builder()
             .id(IDENTIFIER_4_ID)
-            .databaseId(IDENTIFIER_4_DATABASE_ID)
-            .tableId(IDENTIFIER_4_TABLE_ID)
+            .databaseId(DATABASE_1_ID)
+            .tableId(TABLE_1_ID)
             .descriptions(new LinkedList<>())
             .titles(new LinkedList<>())
             .relatedIdentifiers(new LinkedList<>())
@@ -7425,7 +7361,7 @@ public abstract class BaseTest {
             .configure(".*")
             .build();
 
-    public static final Long BANNER_MESSAGE_1_ID = 1L;
+    public static final UUID BANNER_MESSAGE_1_ID = UUID.fromString("81cf09b7-0d86-44ad-be8e-a407e7d114e1");
     public static final String BANNER_MESSAGE_1_MESSAGE = "Next maintenance in 7 days!";
     public static final BannerMessageType BANNER_MESSAGE_1_TYPE = BannerMessageType.INFO;
     public static final BannerMessageTypeDto BANNER_MESSAGE_1_TYPE_DTO = BannerMessageTypeDto.INFO;
@@ -7462,7 +7398,7 @@ public abstract class BaseTest {
             .displayEnd(BANNER_MESSAGE_1_END)
             .build();
 
-    public static final Long BANNER_MESSAGE_2_ID = 2L;
+    public static final UUID BANNER_MESSAGE_2_ID = UUID.fromString("1e7e2c03-e2c6-46b8-9fdc-6668ef055d99");
     public static final String BANNER_MESSAGE_2_MESSAGE = "No operation on Christmas 2022!";
     public static final BannerMessageType BANNER_MESSAGE_2_TYPE = BannerMessageType.ERROR;
     public static final BannerMessageTypeDto BANNER_MESSAGE_2_TYPE_DTO = BannerMessageTypeDto.ERROR;
@@ -8086,7 +8022,7 @@ public abstract class BaseTest {
             .primaryKey(new LinkedList<>(List.of(PrimaryKey.builder()
                     .table(TABLE_1)
                     .column(TABLE_1_COLUMNS.get(0))
-                    .id(1L)
+                    .id(COLUMN_1_1_ID)
                     .build())))
             .build();
 
@@ -8095,7 +8031,7 @@ public abstract class BaseTest {
             .foreignKeys(new LinkedList<>())
             .uniques(new LinkedList<>())
             .primaryKey(new LinkedHashSet<>(Set.of(PrimaryKeyDto.builder()
-                    .id(1L)
+                    .id(UUID.fromString("b3f40a88-4f21-4de0-a595-3d15e63943aa"))
                     .table(TABLE_1_BRIEF_DTO)
                     .column(TABLE_1_COLUMNS_BRIEF_0_DTO)
                     .build())))
@@ -8104,11 +8040,11 @@ public abstract class BaseTest {
     public static final Constraints TABLE_2_CONSTRAINTS = Constraints.builder()
             .checks(new LinkedHashSet<>(List.of("`mintemp` > 0")))
             .foreignKeys(new LinkedList<>(List.of(ForeignKey.builder()
-                    .id(1L)
+                    .id(UUID.fromString("d79f0fb1-05d6-4f3e-a5e2-8559982b8516"))
                     .name("fk_location")
                     .onDelete(ReferenceType.NO_ACTION)
                     .references(new LinkedList<>(List.of(ForeignKeyReference.builder()
-                            .id(1L)
+                            .id(UUID.fromString("a4da8f2f-2999-4621-8066-801a2fb73c8d"))
                             .column(TABLE_2_COLUMNS.get(2))
                             .referencedColumn(TABLE_1_COLUMNS.get(0))
                             .foreignKey(null) // set later
@@ -8118,7 +8054,7 @@ public abstract class BaseTest {
                     .onUpdate(ReferenceType.NO_ACTION)
                     .build())))
             .uniques(new LinkedList<>(List.of(Unique.builder()
-                    .id(1L)
+                    .id(UUID.fromString("408e398f-d157-49a1-8b45-87a070f3b4de"))
                     .table(TABLE_2)
                     .name("uk_1")
                     .columns(new LinkedList<>(List.of(TABLE_2_COLUMNS.get(1))))
@@ -8126,18 +8062,18 @@ public abstract class BaseTest {
             .primaryKey(new LinkedList<>(List.of(PrimaryKey.builder()
                     .table(TABLE_2)
                     .column(TABLE_2_COLUMNS.get(0))
-                    .id(2L)
+                    .id(COLUMN_2_1_ID)
                     .build())))
             .build();
 
     public static final ConstraintsDto TABLE_2_CONSTRAINTS_DTO = ConstraintsDto.builder()
             .checks(new LinkedHashSet<>(List.of("`mintemp` > 0")))
             .foreignKeys(new LinkedList<>(List.of(ForeignKeyDto.builder()
-                    .id(1L)
+                    .id(UUID.fromString("ca833111-1e9a-48a3-bb16-ad6f90196f96"))
                     .name("fk_location")
                     .onDelete(ReferenceTypeDto.NO_ACTION)
                     .references(new LinkedList<>(List.of(ForeignKeyReferenceDto.builder()
-                            .id(1L)
+                            .id(UUID.fromString("8552f282-0403-424d-b2ba-4ed0f760197c"))
                             .column(TABLE_2_COLUMNS_BRIEF_2_DTO)
                             .referencedColumn(TABLE_1_COLUMNS_BRIEF_0_DTO)
                             .foreignKey(null) // set later
@@ -8147,7 +8083,7 @@ public abstract class BaseTest {
                     .onUpdate(ReferenceTypeDto.NO_ACTION)
                     .build())))
             .uniques(new LinkedList<>(List.of(UniqueDto.builder()
-                    .id(1L)
+                    .id(UUID.fromString("b9aba807-dd9c-43a3-9614-2493cb4b26bd"))
                     .table(TABLE_2_BRIEF_DTO)
                     .name("uk_1")
                     .columns(new LinkedList<>(List.of(TABLE_2_COLUMNS_BRIEF_DTO.get(1))))
@@ -8155,7 +8091,7 @@ public abstract class BaseTest {
             .primaryKey(new LinkedHashSet<>(Set.of(PrimaryKeyDto.builder()
                     .table(TABLE_2_BRIEF_DTO)
                     .column(TABLE_2_COLUMNS_BRIEF_0_DTO)
-                    .id(2L)
+                    .id(COLUMN_2_1_ID)
                     .build())))
             .build();
 
@@ -8166,7 +8102,7 @@ public abstract class BaseTest {
             .primaryKey(new LinkedList<>(List.of(PrimaryKey.builder()
                     .table(TABLE_3)
                     .column(TABLE_3_COLUMNS.get(0))
-                    .id(3L)
+                    .id(COLUMN_3_1_ID)
                     .build())))
             .build();
 
@@ -8177,7 +8113,7 @@ public abstract class BaseTest {
             .primaryKey(new LinkedHashSet<>(Set.of(PrimaryKeyDto.builder()
                     .table(TABLE_3_BRIEF_DTO)
                     .column(TABLE_3_COLUMNS_BRIEF_0_DTO)
-                    .id(3L)
+                    .id(COLUMN_3_1_ID)
                     .build())))
             .build();
 
@@ -8188,7 +8124,7 @@ public abstract class BaseTest {
             .primaryKey(new LinkedList<>(List.of(PrimaryKey.builder()
                     .table(TABLE_4)
                     .column(TABLE_4_COLUMNS.get(0))
-                    .id(4L)
+                    .id(COLUMN_4_1_ID)
                     .build())))
             .build();
 
@@ -8199,7 +8135,7 @@ public abstract class BaseTest {
             .primaryKey(new LinkedHashSet<>(Set.of(PrimaryKeyDto.builder()
                     .table(TABLE_4_BRIEF_DTO)
                     .column(TABLE_4_COLUMNS_BRIEF_0_DTO)
-                    .id(4L)
+                    .id(COLUMN_4_1_ID)
                     .build())))
             .build();
 
@@ -8210,7 +8146,7 @@ public abstract class BaseTest {
             .primaryKey(new LinkedList<>(List.of(PrimaryKey.builder()
                     .table(TABLE_5)
                     .column(TABLE_5_COLUMNS.get(0))
-                    .id(5L)
+                    .id(COLUMN_5_1_ID)
                     .build())))
             .build();
 
@@ -8221,7 +8157,7 @@ public abstract class BaseTest {
             .primaryKey(new LinkedHashSet<>(Set.of(PrimaryKeyDto.builder()
                     .table(TABLE_5_BRIEF_DTO)
                     .column(TABLE_5_COLUMNS_BRIEF_0_DTO)
-                    .id(5L)
+                    .id(COLUMN_5_1_ID)
                     .build())))
             .build();
 
@@ -8232,7 +8168,7 @@ public abstract class BaseTest {
             .primaryKey(new LinkedList<>(List.of(PrimaryKey.builder()
                     .table(TABLE_6)
                     .column(TABLE_6_COLUMNS.get(0))
-                    .id(6L)
+                    .id(COLUMN_6_1_ID)
                     .build())))
             .build();
 
@@ -8243,18 +8179,18 @@ public abstract class BaseTest {
             .primaryKey(new LinkedHashSet<>(Set.of(PrimaryKeyDto.builder()
                     .table(TABLE_6_BRIEF_DTO)
                     .column(TABLE_6_COLUMNS_BRIEF_0_DTO)
-                    .id(6L)
+                    .id(COLUMN_6_1_ID)
                     .build())))
             .build();
 
     public static final Constraints TABLE_7_CONSTRAINTS = Constraints.builder()
             .checks(new LinkedHashSet<>())
             .foreignKeys(new LinkedList<>(List.of(ForeignKey.builder()
-                            .id(8L)
+                            .id(UUID.fromString("421c3dd8-ae09-4c72-a6ca-09de009e755f"))
                             .name("fk_name_id")
                             .onDelete(ReferenceType.NO_ACTION)
                             .references(new LinkedList<>(List.of(ForeignKeyReference.builder()
-                                    .id(2L)
+                                    .id(UUID.fromString("7c0e4a3c-88b8-4276-8924-403fd122fbf1"))
                                     .column(TABLE_6_COLUMNS.get(0))
                                     .referencedColumn(TABLE_7_COLUMNS.get(0))
                                     .foreignKey(null) // set later
@@ -8264,11 +8200,11 @@ public abstract class BaseTest {
                             .onUpdate(ReferenceType.NO_ACTION)
                             .build(),
                     ForeignKey.builder()
-                            .id(9L)
+                            .id(UUID.fromString("fce75207-6009-49ff-a646-d3e18aed787a"))
                             .name("fk_zoo_id")
                             .onDelete(ReferenceType.NO_ACTION)
                             .references(new LinkedList<>(List.of(ForeignKeyReference.builder()
-                                    .id(3L)
+                                    .id(UUID.fromString("e6cb1daa-a210-41c4-bb79-2c98ef25a02c"))
                                     .column(TABLE_5_COLUMNS.get(0))
                                     .referencedColumn(TABLE_7_COLUMNS.get(1))
                                     .foreignKey(null) // set later
@@ -8281,16 +8217,16 @@ public abstract class BaseTest {
             .primaryKey(new LinkedList<>(List.of(PrimaryKey.builder()
                     .table(TABLE_7)
                     .column(TABLE_7_COLUMNS.get(0))
-                    .id(7L)
+                    .id(COLUMN_7_1_ID)
                     .build())))
             .build();
 
     public static final ForeignKeyDto TABLE_7_CONSTRAINTS_FOREIGN_KEY_0_DTO = ForeignKeyDto.builder()
-            .id(2L)
+            .id(UUID.fromString("561b4933-54e5-4dad-a536-39836da87fe3"))
             .name("fk_name_id")
             .onDelete(ReferenceTypeDto.NO_ACTION)
             .references(new LinkedList<>(List.of(ForeignKeyReferenceDto.builder()
-                    .id(2L)
+                    .id(UUID.fromString("0f4b00c0-f2a8-4929-8619-bdc941b5dc8c"))
                     .column(TABLE_6_COLUMNS_BRIEF_0_DTO)
                     .referencedColumn(TABLE_7_COLUMNS_BRIEF_0_DTO)
                     .foreignKey(null) // set later
@@ -8301,15 +8237,15 @@ public abstract class BaseTest {
             .build();
 
     public static final ForeignKeyBriefDto TABLE_7_CONSTRAINTS_FOREIGN_KEY_BRIEF_0_DTO = ForeignKeyBriefDto.builder()
-            .id(2L)
+            .id(UUID.fromString("a92f09c5-9bce-4f77-8f7b-a9afc1d30ec2"))
             .build();
 
     public static final ForeignKeyDto TABLE_7_CONSTRAINTS_FOREIGN_KEY_1_DTO = ForeignKeyDto.builder()
-            .id(3L)
+            .id(UUID.fromString("f2e82566-ddc3-4b76-8d27-adc3c51780a9"))
             .name("fk_zoo_id")
             .onDelete(ReferenceTypeDto.NO_ACTION)
             .references(new LinkedList<>(List.of(ForeignKeyReferenceDto.builder()
-                    .id(3L)
+                    .id(UUID.fromString("7a393166-25d2-4b8c-a5e7-7d1b3b33b823"))
                     .column(TABLE_5_COLUMNS_BRIEF_0_DTO)
                     .referencedColumn(TABLE_7_COLUMNS_BRIEF_1_DTO)
                     .foreignKey(null) // set later
@@ -8320,7 +8256,7 @@ public abstract class BaseTest {
             .build();
 
     public static final ForeignKeyBriefDto TABLE_7_CONSTRAINTS_FOREIGN_KEY_BRIEF_1_DTO = ForeignKeyBriefDto.builder()
-            .id(3L)
+            .id(UUID.fromString("6ce1f707-0bdf-4930-be77-157801d2735a"))
             .build();
 
     public static final ConstraintsDto TABLE_7_CONSTRAINTS_DTO = ConstraintsDto.builder()
@@ -8331,7 +8267,7 @@ public abstract class BaseTest {
             .primaryKey(new LinkedHashSet<>(Set.of(PrimaryKeyDto.builder()
                     .table(TABLE_7_BRIEF_DTO)
                     .column(TABLE_7_COLUMNS_BRIEF_0_DTO)
-                    .id(7L)
+                    .id(UUID.fromString("9969e13f-2a2f-45c7-bccf-a7df0ac813a8"))
                     .build())))
             .build();
 
@@ -8342,7 +8278,7 @@ public abstract class BaseTest {
             .primaryKey(new LinkedList<>(List.of(PrimaryKey.builder()
                     .table(TABLE_8)
                     .column(TABLE_8_COLUMNS.get(0))
-                    .id(8L)
+                    .id(UUID.fromString("cd23b601-966c-4aa7-9722-6bcb009200cc"))
                     .build())))
             .build();
 
@@ -8353,7 +8289,7 @@ public abstract class BaseTest {
             .primaryKey(new LinkedHashSet<>(Set.of(PrimaryKeyDto.builder()
                     .table(TABLE_8_BRIEF_DTO)
                     .column(TABLE_8_COLUMNS_BRIEF_0_DTO)
-                    .id(8L)
+                    .id(UUID.fromString("c61196d1-a902-405c-a825-0781c0c94df1"))
                     .build())))
             .build();
 
@@ -8362,25 +8298,4 @@ public abstract class BaseTest {
             .resource(new InputStreamResource(InputStream.nullInputStream()))
             .build();
 
-    public static void saveObservedMetrics(Map<String, String> observedMetrics) throws IOException {
-        final int keySize = observedMetrics.keySet().stream().max(Comparator.comparingInt(String::length)).get().length();
-        final int valueSize = observedMetrics.values().stream().max(Comparator.comparingInt(String::length)).get().length();
-        final StringBuilder content = new StringBuilder("| ")
-                .append(StringUtils.rightPad("**Metric**", Integer.max(keySize + 2, 16)))
-                .append(" | ")
-                .append(StringUtils.rightPad("**Description**", Integer.max(valueSize, 19)))
-                .append(" |\n")
-                .append("|-")
-                .append(StringUtils.leftPad("", Integer.max(keySize + 2, 16), "-"))
-                .append("-|-")
-                .append(StringUtils.leftPad("", Integer.max(valueSize, 19), "-"))
-                .append("-|\n");
-        observedMetrics.forEach((key, value) -> content.append("| ")
-                .append(StringUtils.rightPad("`" + key + "`", Integer.max(keySize + 2, 16)))
-                .append(" | ")
-                .append(StringUtils.rightPad(value, Integer.max(valueSize, 19)))
-                .append(" |\n"));
-        FileUtils.writeStringToFile(new File("../metrics.md"), content.toString(), Charset.defaultCharset());
-    }
-
 }
-- 
GitLab