diff --git a/dbrepo-metadata-service/repositories/src/main/java/at/tuwien/mapper/MetadataMapper.java b/dbrepo-metadata-service/repositories/src/main/java/at/tuwien/mapper/MetadataMapper.java
index 4049835bb7e2fc6b7bcc4f0d6dc643f1676ad968..95c9abeafb2cc369860eb64d4c9d1c39dbb2d427 100644
--- a/dbrepo-metadata-service/repositories/src/main/java/at/tuwien/mapper/MetadataMapper.java
+++ b/dbrepo-metadata-service/repositories/src/main/java/at/tuwien/mapper/MetadataMapper.java
@@ -821,6 +821,7 @@ public interface MetadataMapper {
     }
 
     @Mappings({
+            @Mapping(target = "vdbid", source = "database.id"),
             @Mapping(target = "database.views", ignore = true),
             @Mapping(target = "database.tables", ignore = true)
     })
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 46a5ac8980d31daf28f95c9fa7b162f7c06fbd19..bce95faff57132842796d47e19ba78ae2c2d4921 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
@@ -72,7 +72,7 @@ public class ContainerEndpointUnitTest extends AbstractUnitTest {
         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(CONTAINER_1_PRIVILEGED_PASSWORD), headers.get("X-Jdbc-Method"));
+        assertEquals(List.of(IMAGE_1_JDBC), headers.get("X-Jdbc-Method"));
         assertEquals(List.of("X-Username X-Password X-Jdbc-Method"), headers.get("Access-Control-Expose-Headers"));
     }
 
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 5efc2165261aac2137924ef4f2ce0f77669d5dd0..1e003041027ed22072d167eae81fab3a5d32c813 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
@@ -93,32 +93,32 @@ public class IdentifierEndpointUnitTest extends AbstractUnitTest {
 
     public static Stream<Arguments> malformedDatabase_parameters() {
         return Stream.of(
-                Arguments.arguments("queryId", 9999L, null, null),
-                Arguments.arguments("viewId", null, 9999L, null),
-                Arguments.arguments("tableId", null, null, 9999L)
+                Arguments.arguments("queryId", "deadbeef-1f60-4297-9eab-5b0321d96dd7", null, null),
+                Arguments.arguments("viewId", null, "deadbeef-1f60-4297-9eab-5b0321d96dd7", null),
+                Arguments.arguments("tableId", null, null, "deadbeef-1f60-4297-9eab-5b0321d96dd7")
         );
     }
 
     public static Stream<Arguments> malformedSubset_parameters() {
         return Stream.of(
                 Arguments.arguments("queryId", null, null, null),
-                Arguments.arguments("viewId", null, 9999L, null),
-                Arguments.arguments("tableId", null, null, 9999L)
+                Arguments.arguments("viewId", null, "deadbeef-1f60-4297-9eab-5b0321d96dd7", null),
+                Arguments.arguments("tableId", null, null, "deadbeef-1f60-4297-9eab-5b0321d96dd7")
         );
     }
 
     public static Stream<Arguments> malformedView_parameters() {
         return Stream.of(
-                Arguments.arguments("queryId", 9999L, null, null),
+                Arguments.arguments("queryId", "deadbeef-1f60-4297-9eab-5b0321d96dd7", null, null),
                 Arguments.arguments("viewId", null, null, null),
-                Arguments.arguments("tableId", null, null, 9999L)
+                Arguments.arguments("tableId", null, null, "deadbeef-1f60-4297-9eab-5b0321d96dd7")
         );
     }
 
     public static Stream<Arguments> malformedTable_parameters() {
         return Stream.of(
-                Arguments.arguments("queryId", 9999L, null, null),
-                Arguments.arguments("viewId", null, 9999L, null),
+                Arguments.arguments("queryId", "deadbeef-1f60-4297-9eab-5b0321d96dd7", null, null),
+                Arguments.arguments("viewId", null, "deadbeef-1f60-4297-9eab-5b0321d96dd7", null),
                 Arguments.arguments("tableId", null, null, null)
         );
     }
@@ -126,7 +126,7 @@ public class IdentifierEndpointUnitTest extends AbstractUnitTest {
     public static Stream<Arguments> findAll_anonymousFilterDatabase_parameters() {
         return Stream.of(
                 Arguments.arguments("dbid", DATABASE_1_ID, null, null, null, null, 1),
-                Arguments.arguments("qid", DATABASE_1_ID, QUERY_1_ID, null, null, null, 0),
+                Arguments.arguments("qid", DATABASE_1_ID, QUERY_1_ID, null, null, null, 1),
                 Arguments.arguments("vid", DATABASE_1_ID, null, VIEW_1_ID, null, null, 0),
                 Arguments.arguments("tid", DATABASE_1_ID, null, null, TABLE_1_ID, null, 0),
                 Arguments.arguments("status_published", DATABASE_1_ID, null, null, null, "PUBLISHED", 1),
@@ -144,7 +144,7 @@ public class IdentifierEndpointUnitTest extends AbstractUnitTest {
     public static Stream<Arguments> findAll_filterDatabase_parameters() {
         return Stream.of(
                 Arguments.arguments("database_dbid", IdentifierTypeDto.DATABASE, null, DATABASE_1_ID, null, null, null, 1, USER_1_PRINCIPAL),
-                Arguments.arguments("database_qid", IdentifierTypeDto.DATABASE, null, DATABASE_1_ID, QUERY_1_ID, null, null, 0, USER_1_PRINCIPAL),
+                Arguments.arguments("database_qid", IdentifierTypeDto.DATABASE, null, DATABASE_1_ID, QUERY_1_ID, null, null, 1, USER_1_PRINCIPAL),
                 Arguments.arguments("database_vid", IdentifierTypeDto.DATABASE, null, DATABASE_1_ID, null, VIEW_1_ID, null, 0, USER_1_PRINCIPAL),
                 Arguments.arguments("database_tid", IdentifierTypeDto.DATABASE, null, DATABASE_1_ID, null, null, TABLE_1_ID, 0, USER_1_PRINCIPAL),
                 Arguments.arguments("subset_dbid", IdentifierTypeDto.SUBSET, null, DATABASE_1_ID, null, null, null, 1, USER_1_PRINCIPAL),
@@ -160,7 +160,7 @@ public class IdentifierEndpointUnitTest extends AbstractUnitTest {
                 Arguments.arguments("table_vid", IdentifierTypeDto.TABLE, null, DATABASE_1_ID, null, VIEW_1_ID, null, 0, USER_1_PRINCIPAL),
                 Arguments.arguments("table_tid", IdentifierTypeDto.TABLE, null, DATABASE_1_ID, null, null, TABLE_1_ID, 1, USER_1_PRINCIPAL),
                 Arguments.arguments("anon_database_dbid", IdentifierTypeDto.DATABASE, null, DATABASE_1_ID, null, null, null, 1, null),
-                Arguments.arguments("anon_database_qid", IdentifierTypeDto.DATABASE, null, DATABASE_1_ID, QUERY_1_ID, null, null, 0, null),
+                Arguments.arguments("anon_database_qid", IdentifierTypeDto.DATABASE, null, DATABASE_1_ID, QUERY_1_ID, null, null, 1, null),
                 Arguments.arguments("anon_database_vid", IdentifierTypeDto.DATABASE, null, DATABASE_1_ID, null, VIEW_1_ID, null, 0, null),
                 Arguments.arguments("anon_database_tid", IdentifierTypeDto.DATABASE, null, DATABASE_1_ID, null, null, TABLE_1_ID, 0, null),
                 Arguments.arguments("anon_subset_dbid", IdentifierTypeDto.SUBSET, null, DATABASE_1_ID, null, null, null, 1, null),
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 02750dba7d78414ecd77697831587db639ef07f6..ac1103d2e5ad0a4c9a12b781c575ddff9aa39bcf 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
@@ -1,7 +1,9 @@
 package at.tuwien.mapper;
 
+import at.tuwien.api.database.ViewDto;
 import at.tuwien.api.identifier.IdentifierTypeDto;
 import at.tuwien.api.user.UserBriefDto;
+import at.tuwien.entities.database.View;
 import at.tuwien.entities.identifier.Identifier;
 import at.tuwien.entities.identifier.IdentifierType;
 import at.tuwien.test.AbstractUnitTest;
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 3237d9ab8253a60a74cb7e0d03dc3e57796a1679..2f4fd3a85aaca28de490b2953acde20804fb70cd 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
@@ -114,7 +114,7 @@ public class MetadataServiceUnitTest extends AbstractUnitTest {
     @Transactional
     public void getRecord_succeeds() throws IdentifierNotFoundException {
         final OaiRecordParameters parameters = OaiRecordParameters.builder()
-                .identifier("oai:1")
+                .identifier("oai:" + IDENTIFIER_1_ID)
                 .build();
 
         /* mock */
@@ -133,7 +133,7 @@ public class MetadataServiceUnitTest extends AbstractUnitTest {
     @Test
     public void getRecord_oaiNotFound_fails() throws IdentifierNotFoundException {
         final OaiRecordParameters parameters = OaiRecordParameters.builder()
-                .identifier("oai:9999")
+                .identifier("oai:deadbeef-bf9c-4943-a30a-ee5295f5b8c2")
                 .build();
 
         /* mock */
diff --git a/dbrepo-metadata-service/rest-service/src/test/resources/json/metadata0.json b/dbrepo-metadata-service/rest-service/src/test/resources/json/metadata0.json
index 250db21b8f997330463558b8540a23d2f4521778..228849fe625df9c0b50dbb97542bd94057173d2f 100644
--- a/dbrepo-metadata-service/rest-service/src/test/resources/json/metadata0.json
+++ b/dbrepo-metadata-service/rest-service/src/test/resources/json/metadata0.json
@@ -1,5 +1,5 @@
 {
-  "id": 7,
+  "id": "b216ae00-a31d-4ecb-95fb-37eb4da3946f",
   "type": "database",
   "titles": [],
   "descriptions": [],
@@ -11,7 +11,7 @@
   "licenses": [],
   "creators": [
     {
-      "id": 1,
+      "id": "b899c367-06c7-4f47-8aea-5f15061ee3ee",
       "firstname": "Max",
       "lastname": "Mustermann",
       "creator_name": "Mustermann, Max",
diff --git a/dbrepo-metadata-service/rest-service/src/test/resources/json/metadata1.json b/dbrepo-metadata-service/rest-service/src/test/resources/json/metadata1.json
index 2a0da11e13c832bb1c9578e6982733fb2eb51c3f..82633c0de717d903bdf4011394b2130a4a626740 100644
--- a/dbrepo-metadata-service/rest-service/src/test/resources/json/metadata1.json
+++ b/dbrepo-metadata-service/rest-service/src/test/resources/json/metadata1.json
@@ -1,16 +1,16 @@
 {
-  "id": 1,
-  "query_id": 1,
+  "id": "679a83f2-ef23-4b4b-98f7-ad77b9d68733",
+  "query_id": "60494137-f000-459e-acd3-4fcadbdf14ca",
   "type": "subset",
   "doi": "10.12345/183",
   "titles": [
     {
-      "id": 1,
+      "id": "3df6b286-9bd2-4ae3-b8f4-29c217544bef",
       "title": "Austrian weather data",
       "language": "en"
     },
     {
-      "id": 2,
+      "id": "903a7e5b-8014-4b8a-b8fd-44f477880905",
       "title": "Österreichische Wetterdaten",
       "type": "TranslatedTitle",
       "language": "de"
@@ -18,7 +18,7 @@
   ],
   "descriptions": [
     {
-      "id": 1,
+      "id": "1c438756-93f0-4797-983c-175a17e18c2c",
       "description": "Selecting all from the weather Austrian table",
       "language": "en"
     }
@@ -32,7 +32,7 @@
   "publisher": "Austrian Government",
   "creators": [
     {
-      "id": 1,
+      "id": "667cd1d6-4f94-4808-b5cb-12e5ec0788d8",
       "firstname": "Max",
       "lastname": "Mustermann",
       "creator_name": "Mustermann, Max",
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 f90db02119fcdee90d781fe1f575d1b0a6f4ad66..198ce2bfb9169b627a435eb424d8a8e134df8907 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
@@ -5048,7 +5048,7 @@ public abstract class BaseTest {
 
     public static final List<ViewColumn> VIEW_1_COLUMNS = List.of(
             ViewColumn.builder()
-                    .id(COLUMN_2_1_ID)
+                    .id(VIEW_COLUMN_1_1_ID)
                     .ordinalPosition(0)
                     .name("location")
                     .internalName("location")
@@ -5058,7 +5058,7 @@ public abstract class BaseTest {
                     .view(VIEW_1)
                     .build(),
             ViewColumn.builder()
-                    .id(COLUMN_2_2_ID)
+                    .id(VIEW_COLUMN_1_2_ID)
                     .ordinalPosition(1)
                     .name("lat")
                     .internalName("lat")
@@ -5069,7 +5069,7 @@ public abstract class BaseTest {
                     .view(VIEW_1)
                     .build(),
             ViewColumn.builder()
-                    .id(COLUMN_2_3_ID)
+                    .id(VIEW_COLUMN_1_3_ID)
                     .ordinalPosition(2)
                     .name("lng")
                     .internalName("lng")
@@ -5207,7 +5207,7 @@ public abstract class BaseTest {
 
     public static final List<ViewColumn> VIEW_2_COLUMNS = List.of(
             ViewColumn.builder()
-                    .id(COLUMN_1_2_ID)
+                    .id(VIEW_COLUMN_2_1_ID)
                     .ordinalPosition(0)
                     .name("Date")
                     .internalName("date")
@@ -5216,7 +5216,7 @@ public abstract class BaseTest {
                     .view(VIEW_2)
                     .build(),
             ViewColumn.builder()
-                    .id(COLUMN_1_3_ID)
+                    .id(VIEW_COLUMN_2_2_ID)
                     .ordinalPosition(1)
                     .name("loc")
                     .internalName("loc")
@@ -5226,7 +5226,7 @@ public abstract class BaseTest {
                     .view(VIEW_2)
                     .build(),
             ViewColumn.builder()
-                    .id(COLUMN_1_5_ID)
+                    .id(VIEW_COLUMN_2_3_ID)
                     .ordinalPosition(2)
                     .name("Rainfall")
                     .internalName("rainfall")
@@ -5237,7 +5237,7 @@ public abstract class BaseTest {
                     .view(VIEW_2)
                     .build(),
             ViewColumn.builder()
-                    .id(COLUMN_1_4_ID)
+                    .id(VIEW_COLUMN_2_4_ID)
                     .ordinalPosition(3)
                     .name("MinTemp")
                     .internalName("mintemp")
@@ -5251,6 +5251,7 @@ public abstract class BaseTest {
 
     public static final ViewDto VIEW_2_DTO = ViewDto.builder()
             .id(VIEW_2_ID)
+            .vdbid(DATABASE_1_ID)
             .isInitialView(VIEW_2_INITIAL_VIEW)
             .name(VIEW_2_NAME)
             .internalName(VIEW_2_INTERNAL_NAME)
@@ -5431,6 +5432,7 @@ public abstract class BaseTest {
 
     public static final ViewDto VIEW_3_DTO = ViewDto.builder()
             .id(VIEW_3_ID)
+            .vdbid(DATABASE_1_ID)
             .isInitialView(VIEW_3_INITIAL_VIEW)
             .name(VIEW_3_NAME)
             .internalName(VIEW_3_INTERNAL_NAME)
@@ -5637,6 +5639,7 @@ public abstract class BaseTest {
 
     public static final ViewDto VIEW_4_DTO = ViewDto.builder()
             .id(VIEW_4_ID)
+            .vdbid(DATABASE_2_ID)
             .isInitialView(VIEW_4_INITIAL_VIEW)
             .name(VIEW_4_NAME)
             .internalName(VIEW_4_INTERNAL_NAME)
@@ -5842,6 +5845,7 @@ public abstract class BaseTest {
 
     public static final ViewDto VIEW_5_DTO = ViewDto.builder()
             .id(VIEW_5_ID)
+            .vdbid(DATABASE_3_ID)
             .isInitialView(VIEW_5_INITIAL_VIEW)
             .name(VIEW_5_NAME)
             .internalName(VIEW_5_INTERNAL_NAME)
@@ -6048,11 +6052,6 @@ public abstract class BaseTest {
     public static final Integer IDENTIFIER_1_PUBLICATION_MONTH = 5;
     public static final Integer IDENTIFIER_1_PUBLICATION_YEAR = 2022;
     public static final Integer IDENTIFIER_1_PUBLICATION_DAY = null;
-    public static final String IDENTIFIER_1_QUERY_HASH = QUERY_1_QUERY_HASH;
-    public static final String IDENTIFIER_1_RESULT_HASH = QUERY_1_RESULT_HASH;
-    public static final String IDENTIFIER_1_QUERY = QUERY_1_STATEMENT;
-    public static final String IDENTIFIER_1_NORMALIZED = QUERY_1_STATEMENT;
-    public static final Long IDENTIFIER_1_RESULT_NUMBER = QUERY_1_RESULT_NUMBER;
     public static final String IDENTIFIER_1_PUBLISHER = "Austrian Government";
     public static final IdentifierType IDENTIFIER_1_TYPE = IdentifierType.DATABASE;
     public static final IdentifierTypeDto IDENTIFIER_1_TYPE_DTO = IdentifierTypeDto.DATABASE;
@@ -6273,6 +6272,7 @@ public abstract class BaseTest {
 
     public static final Identifier IDENTIFIER_1 = Identifier.builder()
             .id(IDENTIFIER_1_ID)
+            .queryId(QUERY_1_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)
@@ -6282,11 +6282,11 @@ public abstract class BaseTest {
             .execution(IDENTIFIER_1_EXECUTION)
             .publicationYear(IDENTIFIER_1_PUBLICATION_YEAR)
             .publicationMonth(IDENTIFIER_1_PUBLICATION_MONTH)
-            .queryHash(IDENTIFIER_1_QUERY_HASH)
-            .resultHash(IDENTIFIER_1_RESULT_HASH)
-            .query(IDENTIFIER_1_QUERY)
-            .queryNormalized(IDENTIFIER_1_NORMALIZED)
-            .resultNumber(IDENTIFIER_1_RESULT_NUMBER)
+            .queryHash(QUERY_1_QUERY_HASH)
+            .resultHash(QUERY_1_RESULT_HASH)
+            .query(QUERY_1_STATEMENT)
+            .queryNormalized(QUERY_1_STATEMENT)
+            .resultNumber(QUERY_1_RESULT_NUMBER)
             .publisher(IDENTIFIER_1_PUBLISHER)
             .type(IDENTIFIER_1_TYPE)
             .owner(USER_1)
@@ -6308,11 +6308,11 @@ public abstract class BaseTest {
             .execution(IDENTIFIER_1_EXECUTION)
             .publicationYear(IDENTIFIER_1_PUBLICATION_YEAR)
             .publicationMonth(IDENTIFIER_1_PUBLICATION_MONTH)
-            .queryHash(IDENTIFIER_1_QUERY_HASH)
-            .resultHash(IDENTIFIER_1_RESULT_HASH)
-            .query(IDENTIFIER_1_QUERY)
-            .queryNormalized(IDENTIFIER_1_NORMALIZED)
-            .resultNumber(IDENTIFIER_1_RESULT_NUMBER)
+            .queryHash(QUERY_1_QUERY_HASH)
+            .resultHash(QUERY_1_RESULT_HASH)
+            .query(QUERY_1_STATEMENT)
+            .queryNormalized(QUERY_1_STATEMENT)
+            .resultNumber(QUERY_1_RESULT_NUMBER)
             .publisher(IDENTIFIER_1_PUBLISHER)
             .type(IDENTIFIER_1_TYPE)
             .owner(USER_1)
@@ -6331,11 +6331,11 @@ public abstract class BaseTest {
             .execution(IDENTIFIER_1_EXECUTION)
             .publicationYear(IDENTIFIER_1_PUBLICATION_YEAR)
             .publicationMonth(IDENTIFIER_1_PUBLICATION_MONTH)
-            .queryHash(IDENTIFIER_1_QUERY_HASH)
-            .resultHash(IDENTIFIER_1_RESULT_HASH)
-            .query(IDENTIFIER_1_QUERY)
-            .queryNormalized(IDENTIFIER_1_NORMALIZED)
-            .resultNumber(IDENTIFIER_1_RESULT_NUMBER)
+            .queryHash(QUERY_1_QUERY_HASH)
+            .resultHash(QUERY_1_RESULT_HASH)
+            .query(QUERY_1_STATEMENT)
+            .queryNormalized(QUERY_1_STATEMENT)
+            .resultNumber(QUERY_1_RESULT_NUMBER)
             .publisher(IDENTIFIER_1_PUBLISHER)
             .type(IDENTIFIER_1_TYPE_DTO)
             .owner(USER_1_BRIEF_DTO)