From 03bba78ec2f0497060c78cc44f9f66ccc5a6cede Mon Sep 17 00:00:00 2001
From: Martin Weise <martin.weise@tuwien.ac.at>
Date: Sun, 12 Jan 2025 16:06:56 +0100
Subject: [PATCH] Improved DTOs

Signed-off-by: Martin Weise <martin.weise@tuwien.ac.at>
---
 .../java/at/tuwien/ExportResourceDto.java     |   1 +
 .../at/tuwien/api/amqp/ChannelDetailsDto.java |   1 +
 .../java/at/tuwien/api/amqp/ConsumerDto.java  |   4 +-
 .../at/tuwien/api/amqp/CreateExchangeDto.java |   5 +-
 .../at/tuwien/api/amqp/CreateUserDto.java     |   1 +
 .../tuwien/api/amqp/CreateVirtualHostDto.java |   4 +-
 .../java/at/tuwien/api/amqp/ExchangeDto.java  |   5 +-
 .../api/amqp/GrantExchangePermissionsDto.java |   1 +
 .../amqp/GrantVirtualHostPermissionsDto.java  |   4 +-
 .../at/tuwien/api/amqp/QueueBriefDto.java     |   4 +-
 .../java/at/tuwien/api/amqp/QueueDto.java     |   4 +-
 .../tuwien/api/amqp/TopicPermissionDto.java   |   1 +
 .../at/tuwien/api/amqp/UserDetailsDto.java    |   4 +-
 .../api/amqp/VirtualHostPermissionDto.java    |   1 +
 .../at/tuwien/api/auth/CreateUserDto.java     |   4 +-
 .../at/tuwien/api/auth/CredentialDto.java     |   4 +-
 .../at/tuwien/api/auth/JwtResponseDto.java    |   4 +-
 .../at/tuwien/api/auth/KeycloakErrorDto.java  |   1 +
 .../at/tuwien/api/auth/LoginRequestDto.java   |   4 +-
 .../at/tuwien/api/auth/RealmAccessDto.java    |   4 +-
 .../api/auth/RefreshTokenRequestDto.java      |   1 +
 .../at/tuwien/api/auth/SignupRequestDto.java  |   4 +-
 .../tuwien/api/auth/TokenIntrospectDto.java   |   4 +-
 .../api/container/ContainerBriefDto.java      |   1 +
 .../api/container/image/DataTypeDto.java      |   1 +
 .../api/container/image/ImageBriefDto.java    |   1 +
 .../tuwien/api/container/image/ImageDto.java  |   1 +
 .../api/container/image/OperatorDto.java      |   3 +
 .../at/tuwien/api/crossref/CrossrefDto.java   |   1 +
 .../crossref/form/CrossrefLiteralFormDto.java |   1 +
 .../api/crossref/label/CrossrefLabelDto.java  |   1 +
 .../crossref/label/CrossrefPrefLabelDto.java  |   1 +
 .../api/database/DatabaseAccessDto.java       |  10 +-
 .../tuwien/api/database/DatabaseBriefDto.java |   5 +-
 .../api/database/DatabaseCreateDto.java       |   1 +
 .../at/tuwien/api/database/DatabaseDto.java   |   6 +-
 .../api/database/DatabaseModifyImageDto.java  |   1 +
 .../database/DatabaseModifyVisibilityDto.java |   4 +-
 .../api/database/DatabaseTransferDto.java     |   4 +-
 .../at/tuwien/api/database/LicenseDto.java    |   4 +-
 .../at/tuwien/api/database/LoadFileDto.java   |   1 +
 .../tuwien/api/database/SubjectModifyDto.java |   4 +-
 .../api/database/UpdateDatabaseAccessDto.java |   1 +
 .../at/tuwien/api/database/ViewBriefDto.java  |   4 +-
 .../at/tuwien/api/database/ViewColumnDto.java |  11 +-
 .../at/tuwien/api/database/ViewCreateDto.java |   6 +-
 .../java/at/tuwien/api/database/ViewDto.java  |   7 +-
 .../internal/PrivilegedDatabaseDto.java       |   3 -
 .../database/internal/PrivilegedViewDto.java  |   1 -
 .../tuwien/api/database/query/ExportDto.java  |   4 +-
 .../tuwien/api/database/query/ImportDto.java  |   4 +-
 .../api/database/query/QueryBriefDto.java     |   1 +
 .../tuwien/api/database/query/QueryDto.java   |   1 +
 .../api/database/query/QueryPersistDto.java   |   1 +
 .../api/database/query/SaveStatementDto.java  |   4 +-
 .../api/database/table/TableBriefDto.java     |   8 +-
 .../api/database/table/TableCreateDto.java    |   6 +-
 .../database/table/TableCreateRawQuery.java   |   1 +
 .../tuwien/api/database/table/TableDto.java   |   6 +-
 .../api/database/table/TableHistoryDto.java   |   4 +-
 .../database/table/TableInsertRawQuery.java   |   1 +
 .../api/database/table/TableStatisticDto.java |   2 +-
 .../api/database/table/TupleDeleteDto.java    |   4 +-
 .../tuwien/api/database/table/TupleDto.java   |   4 +-
 .../api/database/table/TupleUpdateDto.java    |   4 +-
 .../table/columns/ColumnBriefDto.java         |   4 +-
 .../table/columns/ColumnCreateDto.java        |   6 +-
 .../api/database/table/columns/ColumnDto.java |  27 +-
 .../table/columns/ColumnStatisticDto.java     |   2 +-
 .../concepts/ColumnSemanticsUpdateDto.java    |   1 +
 .../columns/concepts/ConceptBriefDto.java     |  28 ++
 .../table/columns/concepts/ConceptDto.java    |   8 +-
 .../columns/concepts/ConceptSaveDto.java      |   1 +
 .../table/columns/concepts/UnitBriefDto.java  |  27 ++
 .../table/columns/concepts/UnitDto.java       |   8 +-
 .../table/columns/concepts/UnitSaveDto.java   |   1 +
 .../constraints/ConstraintsCreateDto.java     |   1 +
 .../constraints/foreign/ForeignKeyDto.java    |   2 -
 .../foreign/ForeignKeyReferenceDto.java       |   2 -
 .../constraints/primary/PrimaryKeyDto.java    |   2 -
 .../table/constraints/unique/UniqueDto.java   |   2 -
 .../table/internal/PrivilegedTableDto.java    |   4 +-
 .../java/at/tuwien/api/error/ApiErrorDto.java |   4 +-
 .../at/tuwien/api/identifier/CreatorDto.java  |   1 +
 .../identifier/IdentifierDescriptionDto.java  |   1 +
 .../tuwien/api/identifier/IdentifierDto.java  |  11 +-
 .../api/identifier/IdentifierFunderDto.java   |   1 +
 .../api/identifier/IdentifierTitleDto.java    |   1 +
 .../api/identifier/RelatedIdentifierDto.java  |   1 +
 .../main/java/at/tuwien/api/ldap/UserDto.java |   3 +-
 .../api/maintenance/BannerMessageDto.java     |   1 +
 .../java/at/tuwien/api/orcid/OrcidDto.java    |   1 +
 .../activities/OrcidActivitiesSummaryDto.java |   1 +
 .../employments/OrcidEmploymentsDto.java      |   1 +
 .../affiliation/OrcidAffiliationGroupDto.java |   1 +
 .../group/OrcidEmploymentSummaryDto.java      |   1 +
 .../group/summary/OrcidSummaryDto.java        |   1 +
 .../organization/OrcidOrganizationDto.java    |   1 +
 .../disambiguated/OrcidDisambiguatedDto.java  |   1 +
 .../api/orcid/person/OrcidPersonDto.java      |   1 +
 .../api/orcid/person/name/OrcidNameDto.java   |   1 +
 .../api/orcid/person/name/OrcidValueDto.java  |   1 +
 .../main/java/at/tuwien/api/ror/RorDto.java   |   1 +
 .../api/semantics/OntologyBriefDto.java       |   1 +
 .../at/tuwien/api/semantics/OntologyDto.java  |   1 +
 .../api/semantics/TableColumnEntityDto.java   |   3 +-
 .../user/ExchangeUpdatePermissionsDto.java    |   4 +-
 .../tuwien/api/user/GrantedAuthorityDto.java  |   1 +
 .../at/tuwien/api/user/UserAttributesDto.java |   1 +
 .../java/at/tuwien/api/user/UserBriefDto.java |   4 +-
 .../at/tuwien/api/user/UserDetailsDto.java    |   5 +-
 .../main/java/at/tuwien/api/user/UserDto.java |   6 +-
 .../java/at/tuwien/api/user/UserEmailDto.java |   4 +-
 .../at/tuwien/api/user/UserForgotDto.java     |   4 +-
 .../api/user/UserModifyPasswordDto.java       |   4 +-
 .../at/tuwien/api/user/UserPasswordDto.java   |   4 +-
 .../java/at/tuwien/api/user/UserResetDto.java |   4 +-
 .../java/at/tuwien/api/user/UserRolesDto.java |   4 +-
 .../at/tuwien/api/user/UserThemeSetDto.java   |   4 +-
 .../at/tuwien/api/user/UserUpdateDto.java     |   1 +
 .../api/user/UserUpdatePermissionsDto.java    |   4 +-
 .../user/external/ExternalMetadataDto.java    |   2 +-
 .../affiliation/ExternalAffiliationDto.java   |   1 +
 .../api/user/internal/PrivilegedUserDto.java  |   3 +-
 .../user/internal/UpdateUserPasswordDto.java  |   1 +
 .../entities/container/image/Operator.java    |   2 +-
 .../entities/database/DatabaseAccess.java     |   1 +
 .../java/at/tuwien/entities/user/User.java    |   1 +
 .../java/at/tuwien/mapper/MetadataMapper.java |  10 +-
 .../at/tuwien/endpoints/DatabaseEndpoint.java |   3 +-
 .../at/tuwien/endpoints/UserEndpoint.java     |   3 +-
 .../tuwien/mapper/MetadataMapperUnitTest.java |  87 ++++-
 .../java/at/tuwien/test/AbstractUnitTest.java |   2 +-
 .../main/java/at/tuwien/test/BaseTest.java    | 341 ++++++++++--------
 lib/python/dbrepo/api/dto.py                  |  17 +-
 135 files changed, 516 insertions(+), 388 deletions(-)
 create mode 100644 dbrepo-metadata-service/api/src/main/java/at/tuwien/api/database/table/columns/concepts/ConceptBriefDto.java
 create mode 100644 dbrepo-metadata-service/api/src/main/java/at/tuwien/api/database/table/columns/concepts/UnitBriefDto.java

diff --git a/dbrepo-metadata-service/api/src/main/java/at/tuwien/ExportResourceDto.java b/dbrepo-metadata-service/api/src/main/java/at/tuwien/ExportResourceDto.java
index 7324094f4c..5c5bf22005 100644
--- a/dbrepo-metadata-service/api/src/main/java/at/tuwien/ExportResourceDto.java
+++ b/dbrepo-metadata-service/api/src/main/java/at/tuwien/ExportResourceDto.java
@@ -7,6 +7,7 @@ import org.springframework.core.io.InputStreamResource;
 @Setter
 @ToString
 @Builder
+@EqualsAndHashCode
 @AllArgsConstructor
 @NoArgsConstructor
 public class ExportResourceDto {
diff --git a/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/amqp/ChannelDetailsDto.java b/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/amqp/ChannelDetailsDto.java
index ed521fccdf..03aeb19ab4 100644
--- a/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/amqp/ChannelDetailsDto.java
+++ b/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/amqp/ChannelDetailsDto.java
@@ -8,6 +8,7 @@ import lombok.extern.jackson.Jacksonized;
 @Getter
 @Setter
 @Builder
+@EqualsAndHashCode
 @NoArgsConstructor
 @AllArgsConstructor
 @Jacksonized
diff --git a/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/amqp/ConsumerDto.java b/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/amqp/ConsumerDto.java
index 9973c875e8..ad82492d7d 100644
--- a/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/amqp/ConsumerDto.java
+++ b/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/amqp/ConsumerDto.java
@@ -1,14 +1,14 @@
 package at.tuwien.api.amqp;
 
 import com.fasterxml.jackson.annotation.JsonProperty;
-import lombok.*;
-
 import jakarta.validation.constraints.NotNull;
+import lombok.*;
 import lombok.extern.jackson.Jacksonized;
 
 @Getter
 @Setter
 @Builder
+@EqualsAndHashCode
 @NoArgsConstructor
 @AllArgsConstructor
 @Jacksonized
diff --git a/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/amqp/CreateExchangeDto.java b/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/amqp/CreateExchangeDto.java
index 47adfb26e4..dffe2c1e0e 100644
--- a/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/amqp/CreateExchangeDto.java
+++ b/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/amqp/CreateExchangeDto.java
@@ -1,16 +1,15 @@
 package at.tuwien.api.amqp;
 
 import com.fasterxml.jackson.annotation.JsonProperty;
-import io.swagger.v3.oas.annotations.Parameter;
-import lombok.*;
-
 import jakarta.validation.constraints.NotBlank;
 import jakarta.validation.constraints.NotNull;
+import lombok.*;
 import lombok.extern.jackson.Jacksonized;
 
 @Getter
 @Setter
 @Builder
+@EqualsAndHashCode
 @NoArgsConstructor
 @AllArgsConstructor
 @Jacksonized
diff --git a/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/amqp/CreateUserDto.java b/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/amqp/CreateUserDto.java
index fea40fd7cc..372ce8219b 100644
--- a/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/amqp/CreateUserDto.java
+++ b/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/amqp/CreateUserDto.java
@@ -7,6 +7,7 @@ import lombok.extern.jackson.Jacksonized;
 @Getter
 @Setter
 @Builder
+@EqualsAndHashCode
 @NoArgsConstructor
 @AllArgsConstructor
 @Jacksonized
diff --git a/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/amqp/CreateVirtualHostDto.java b/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/amqp/CreateVirtualHostDto.java
index be72924306..b27ea597c2 100644
--- a/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/amqp/CreateVirtualHostDto.java
+++ b/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/amqp/CreateVirtualHostDto.java
@@ -1,14 +1,14 @@
 package at.tuwien.api.amqp;
 
 import io.swagger.v3.oas.annotations.media.Schema;
-import lombok.*;
-
 import jakarta.validation.constraints.NotNull;
+import lombok.*;
 import lombok.extern.jackson.Jacksonized;
 
 @Getter
 @Setter
 @Builder
+@EqualsAndHashCode
 @NoArgsConstructor
 @AllArgsConstructor
 @Jacksonized
diff --git a/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/amqp/ExchangeDto.java b/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/amqp/ExchangeDto.java
index 6a6aceef06..403a04f00b 100644
--- a/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/amqp/ExchangeDto.java
+++ b/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/amqp/ExchangeDto.java
@@ -1,16 +1,15 @@
 package at.tuwien.api.amqp;
 
 import com.fasterxml.jackson.annotation.JsonProperty;
-import io.swagger.v3.oas.annotations.Parameter;
-import lombok.*;
-
 import jakarta.validation.constraints.NotBlank;
 import jakarta.validation.constraints.NotNull;
+import lombok.*;
 import lombok.extern.jackson.Jacksonized;
 
 @Getter
 @Setter
 @Builder
+@EqualsAndHashCode
 @NoArgsConstructor
 @AllArgsConstructor
 @Jacksonized
diff --git a/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/amqp/GrantExchangePermissionsDto.java b/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/amqp/GrantExchangePermissionsDto.java
index 6ed572f962..054548dbf0 100644
--- a/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/amqp/GrantExchangePermissionsDto.java
+++ b/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/amqp/GrantExchangePermissionsDto.java
@@ -8,6 +8,7 @@ import lombok.extern.jackson.Jacksonized;
 @Getter
 @Setter
 @Builder
+@EqualsAndHashCode
 @NoArgsConstructor
 @AllArgsConstructor
 @Jacksonized
diff --git a/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/amqp/GrantVirtualHostPermissionsDto.java b/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/amqp/GrantVirtualHostPermissionsDto.java
index a00578529c..7e84edb80e 100644
--- a/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/amqp/GrantVirtualHostPermissionsDto.java
+++ b/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/amqp/GrantVirtualHostPermissionsDto.java
@@ -1,14 +1,14 @@
 package at.tuwien.api.amqp;
 
 import io.swagger.v3.oas.annotations.media.Schema;
-import lombok.*;
-
 import jakarta.validation.constraints.NotNull;
+import lombok.*;
 import lombok.extern.jackson.Jacksonized;
 
 @Getter
 @Setter
 @Builder
+@EqualsAndHashCode
 @NoArgsConstructor
 @AllArgsConstructor
 @Jacksonized
diff --git a/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/amqp/QueueBriefDto.java b/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/amqp/QueueBriefDto.java
index 2bfcb7efe6..8a266043a1 100644
--- a/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/amqp/QueueBriefDto.java
+++ b/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/amqp/QueueBriefDto.java
@@ -1,14 +1,14 @@
 package at.tuwien.api.amqp;
 
 import io.swagger.v3.oas.annotations.media.Schema;
-import lombok.*;
-
 import jakarta.validation.constraints.NotNull;
+import lombok.*;
 import lombok.extern.jackson.Jacksonized;
 
 @Getter
 @Setter
 @Builder
+@EqualsAndHashCode
 @NoArgsConstructor
 @AllArgsConstructor
 @Jacksonized
diff --git a/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/amqp/QueueDto.java b/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/amqp/QueueDto.java
index 27ad5ba287..acc2091d41 100644
--- a/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/amqp/QueueDto.java
+++ b/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/amqp/QueueDto.java
@@ -1,15 +1,15 @@
 package at.tuwien.api.amqp;
 
 import com.fasterxml.jackson.annotation.JsonProperty;
-import lombok.*;
-
 import jakarta.validation.constraints.NotBlank;
 import jakarta.validation.constraints.NotNull;
+import lombok.*;
 import lombok.extern.jackson.Jacksonized;
 
 @Getter
 @Setter
 @Builder
+@EqualsAndHashCode
 @NoArgsConstructor
 @AllArgsConstructor
 @Jacksonized
diff --git a/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/amqp/TopicPermissionDto.java b/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/amqp/TopicPermissionDto.java
index 57fb360e64..bdd806f71e 100644
--- a/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/amqp/TopicPermissionDto.java
+++ b/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/amqp/TopicPermissionDto.java
@@ -8,6 +8,7 @@ import lombok.extern.jackson.Jacksonized;
 @Getter
 @Setter
 @Builder
+@EqualsAndHashCode
 @NoArgsConstructor
 @AllArgsConstructor
 @Jacksonized
diff --git a/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/amqp/UserDetailsDto.java b/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/amqp/UserDetailsDto.java
index f932dfcf99..a786456efd 100644
--- a/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/amqp/UserDetailsDto.java
+++ b/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/amqp/UserDetailsDto.java
@@ -2,14 +2,14 @@ package at.tuwien.api.amqp;
 
 import com.fasterxml.jackson.annotation.JsonProperty;
 import io.swagger.v3.oas.annotations.media.Schema;
-import lombok.*;
-
 import jakarta.validation.constraints.NotNull;
+import lombok.*;
 import lombok.extern.jackson.Jacksonized;
 
 @Getter
 @Setter
 @Builder
+@EqualsAndHashCode
 @NoArgsConstructor
 @AllArgsConstructor
 @Jacksonized
diff --git a/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/amqp/VirtualHostPermissionDto.java b/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/amqp/VirtualHostPermissionDto.java
index 1cc1bd7f88..0602c418da 100644
--- a/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/amqp/VirtualHostPermissionDto.java
+++ b/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/amqp/VirtualHostPermissionDto.java
@@ -8,6 +8,7 @@ import lombok.extern.jackson.Jacksonized;
 @Getter
 @Setter
 @Builder
+@EqualsAndHashCode
 @NoArgsConstructor
 @AllArgsConstructor
 @Jacksonized
diff --git a/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/auth/CreateUserDto.java b/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/auth/CreateUserDto.java
index fd76994630..0beb8a3794 100644
--- a/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/auth/CreateUserDto.java
+++ b/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/auth/CreateUserDto.java
@@ -1,11 +1,10 @@
 package at.tuwien.api.auth;
 
 import io.swagger.v3.oas.annotations.media.Schema;
-import lombok.*;
-
 import jakarta.validation.constraints.Email;
 import jakarta.validation.constraints.NotBlank;
 import jakarta.validation.constraints.NotNull;
+import lombok.*;
 import lombok.extern.jackson.Jacksonized;
 
 import java.util.List;
@@ -13,6 +12,7 @@ import java.util.List;
 @Getter
 @Setter
 @Builder
+@EqualsAndHashCode
 @NoArgsConstructor
 @AllArgsConstructor
 @Jacksonized
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
index 591b73e806..a9f95ad04d 100644
--- 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
@@ -1,15 +1,15 @@
 package at.tuwien.api.auth;
 
 import io.swagger.v3.oas.annotations.media.Schema;
-import lombok.*;
-
 import jakarta.validation.constraints.NotBlank;
 import jakarta.validation.constraints.NotNull;
+import lombok.*;
 import lombok.extern.jackson.Jacksonized;
 
 @Getter
 @Setter
 @Builder
+@EqualsAndHashCode
 @NoArgsConstructor
 @AllArgsConstructor
 @Jacksonized
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
index c05f053c3b..93d562ca77 100644
--- 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
@@ -1,9 +1,8 @@
 package at.tuwien.api.auth;
 
 import io.swagger.v3.oas.annotations.media.Schema;
-import lombok.*;
-
 import jakarta.validation.constraints.NotNull;
+import lombok.*;
 import lombok.extern.jackson.Jacksonized;
 
 import java.util.List;
@@ -11,6 +10,7 @@ import java.util.List;
 @Getter
 @Setter
 @Builder
+@EqualsAndHashCode
 @NoArgsConstructor
 @AllArgsConstructor
 @Jacksonized
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
index 9b8ad90ea5..01c0a2d034 100644
--- 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
@@ -11,6 +11,7 @@ import java.io.Serializable;
 @Getter
 @Setter
 @Builder
+@EqualsAndHashCode
 @NoArgsConstructor
 @AllArgsConstructor
 @Jacksonized
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
index 5d0de083d9..809de9881b 100644
--- 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
@@ -1,14 +1,14 @@
 package at.tuwien.api.auth;
 
 import io.swagger.v3.oas.annotations.media.Schema;
-import lombok.*;
-
 import jakarta.validation.constraints.NotNull;
+import lombok.*;
 import lombok.extern.jackson.Jacksonized;
 
 @Getter
 @Setter
 @Builder
+@EqualsAndHashCode
 @NoArgsConstructor
 @AllArgsConstructor
 @Jacksonized
diff --git a/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/auth/RealmAccessDto.java b/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/auth/RealmAccessDto.java
index bd4bcd2737..b759aff168 100644
--- a/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/auth/RealmAccessDto.java
+++ b/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/auth/RealmAccessDto.java
@@ -1,14 +1,14 @@
 package at.tuwien.api.auth;
 
 import io.swagger.v3.oas.annotations.media.Schema;
-import lombok.*;
-
 import jakarta.validation.constraints.NotNull;
+import lombok.*;
 import lombok.extern.jackson.Jacksonized;
 
 @Getter
 @Setter
 @Builder
+@EqualsAndHashCode
 @NoArgsConstructor
 @AllArgsConstructor
 @Jacksonized
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
index c774a60280..05b8dfd3b5 100644
--- 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
@@ -9,6 +9,7 @@ import lombok.extern.jackson.Jacksonized;
 @Getter
 @Setter
 @Builder
+@EqualsAndHashCode
 @NoArgsConstructor
 @AllArgsConstructor
 @Jacksonized
diff --git a/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/auth/SignupRequestDto.java b/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/auth/SignupRequestDto.java
index 3cd30bc60f..c9110e041a 100644
--- a/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/auth/SignupRequestDto.java
+++ b/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/auth/SignupRequestDto.java
@@ -1,17 +1,17 @@
 package at.tuwien.api.auth;
 
 import io.swagger.v3.oas.annotations.media.Schema;
-import lombok.*;
-
 import jakarta.validation.constraints.Email;
 import jakarta.validation.constraints.NotBlank;
 import jakarta.validation.constraints.NotNull;
 import jakarta.validation.constraints.Pattern;
+import lombok.*;
 import lombok.extern.jackson.Jacksonized;
 
 @Getter
 @Setter
 @Builder
+@EqualsAndHashCode
 @NoArgsConstructor
 @AllArgsConstructor
 @Jacksonized
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
index a1756e0c90..8a2fa624b5 100644
--- 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
@@ -2,14 +2,14 @@ package at.tuwien.api.auth;
 
 import com.fasterxml.jackson.annotation.JsonProperty;
 import io.swagger.v3.oas.annotations.media.Schema;
-import lombok.*;
-
 import jakarta.validation.constraints.NotNull;
+import lombok.*;
 import lombok.extern.jackson.Jacksonized;
 
 @Getter
 @Setter
 @Builder
+@EqualsAndHashCode
 @NoArgsConstructor
 @AllArgsConstructor
 @Jacksonized
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 4038a39dc6..9b1f8fcd47 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
@@ -14,6 +14,7 @@ import java.time.Instant;
 @Getter
 @Setter
 @Builder
+@EqualsAndHashCode
 @NoArgsConstructor
 @AllArgsConstructor
 @Jacksonized
diff --git a/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/container/image/DataTypeDto.java b/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/container/image/DataTypeDto.java
index 312dcf9984..a4215c0392 100644
--- a/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/container/image/DataTypeDto.java
+++ b/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/container/image/DataTypeDto.java
@@ -10,6 +10,7 @@ import lombok.extern.jackson.Jacksonized;
 @Getter
 @Setter
 @Builder
+@EqualsAndHashCode
 @NoArgsConstructor
 @AllArgsConstructor
 @Jacksonized
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 38adbd6f0d..880db11fbd 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
@@ -10,6 +10,7 @@ import lombok.extern.jackson.Jacksonized;
 @Getter
 @Setter
 @Builder
+@EqualsAndHashCode
 @NoArgsConstructor
 @AllArgsConstructor
 @Jacksonized
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 ea47c51e47..3baa76171b 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
@@ -12,6 +12,7 @@ import java.util.List;
 @Getter
 @Setter
 @Builder
+@EqualsAndHashCode
 @NoArgsConstructor
 @AllArgsConstructor
 @Jacksonized
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 a954bf4a61..96113b5347 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
@@ -10,12 +10,15 @@ import lombok.extern.jackson.Jacksonized;
 @Getter
 @Setter
 @Builder
+@EqualsAndHashCode
 @NoArgsConstructor
 @AllArgsConstructor
 @Jacksonized
 @ToString
 public class OperatorDto {
 
+    private Long id;
+
     @NotBlank
     @JsonProperty("display_name")
     @Schema(example = "XOR")
diff --git a/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/crossref/CrossrefDto.java b/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/crossref/CrossrefDto.java
index 8c51a0442a..4a689a69ce 100644
--- a/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/crossref/CrossrefDto.java
+++ b/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/crossref/CrossrefDto.java
@@ -8,6 +8,7 @@ import lombok.extern.jackson.Jacksonized;
 @Getter
 @Setter
 @Builder
+@EqualsAndHashCode
 @NoArgsConstructor
 @AllArgsConstructor
 @Jacksonized
diff --git a/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/crossref/form/CrossrefLiteralFormDto.java b/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/crossref/form/CrossrefLiteralFormDto.java
index 99a28ba5f2..b493cf89ff 100644
--- a/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/crossref/form/CrossrefLiteralFormDto.java
+++ b/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/crossref/form/CrossrefLiteralFormDto.java
@@ -7,6 +7,7 @@ import lombok.extern.jackson.Jacksonized;
 @Getter
 @Setter
 @Builder
+@EqualsAndHashCode
 @NoArgsConstructor
 @AllArgsConstructor
 @Jacksonized
diff --git a/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/crossref/label/CrossrefLabelDto.java b/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/crossref/label/CrossrefLabelDto.java
index d37f005d05..7bdaf0f931 100644
--- a/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/crossref/label/CrossrefLabelDto.java
+++ b/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/crossref/label/CrossrefLabelDto.java
@@ -8,6 +8,7 @@ import lombok.extern.jackson.Jacksonized;
 @Getter
 @Setter
 @Builder
+@EqualsAndHashCode
 @NoArgsConstructor
 @AllArgsConstructor
 @Jacksonized
diff --git a/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/crossref/label/CrossrefPrefLabelDto.java b/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/crossref/label/CrossrefPrefLabelDto.java
index 4073032f25..a70c161d83 100644
--- a/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/crossref/label/CrossrefPrefLabelDto.java
+++ b/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/crossref/label/CrossrefPrefLabelDto.java
@@ -7,6 +7,7 @@ import lombok.extern.jackson.Jacksonized;
 @Getter
 @Setter
 @Builder
+@EqualsAndHashCode
 @NoArgsConstructor
 @AllArgsConstructor
 @Jacksonized
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 7abc667741..7e929eb748 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
@@ -2,21 +2,17 @@
 package at.tuwien.api.database;
 
 import at.tuwien.api.user.UserBriefDto;
-import at.tuwien.api.user.UserDto;
-import com.fasterxml.jackson.annotation.JsonFormat;
 import com.fasterxml.jackson.annotation.JsonIgnore;
-import io.swagger.v3.oas.annotations.media.Schema;
-import lombok.*;
-
 import jakarta.validation.constraints.NotNull;
+import lombok.*;
 import lombok.extern.jackson.Jacksonized;
 
-import java.time.Instant;
 import java.util.UUID;
 
 @Getter
 @Setter
 @Builder
+@EqualsAndHashCode
 @NoArgsConstructor
 @AllArgsConstructor
 @Jacksonized
@@ -25,12 +21,10 @@ public class DatabaseAccessDto {
 
     @NotNull
     @JsonIgnore
-    @ToString.Exclude
     private UUID huserid;
 
     @NotNull
     @JsonIgnore
-    @ToString.Exclude
     private Long hdbid;
 
     @NotNull
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 2d01129fef..707df1600c 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
@@ -1,9 +1,7 @@
 package at.tuwien.api.database;
 
 import at.tuwien.api.identifier.IdentifierBriefDto;
-import at.tuwien.api.identifier.IdentifierDto;
 import at.tuwien.api.user.UserBriefDto;
-import com.fasterxml.jackson.annotation.JsonFormat;
 import com.fasterxml.jackson.annotation.JsonProperty;
 import io.swagger.v3.oas.annotations.media.Schema;
 import jakarta.validation.constraints.NotBlank;
@@ -11,12 +9,12 @@ import jakarta.validation.constraints.NotNull;
 import lombok.*;
 import lombok.extern.jackson.Jacksonized;
 
-import java.time.Instant;
 import java.util.List;
 
 @Getter
 @Setter
 @Builder
+@EqualsAndHashCode
 @NoArgsConstructor
 @AllArgsConstructor
 @Jacksonized
@@ -50,7 +48,6 @@ public class DatabaseBriefDto {
 
     private List<IdentifierBriefDto> identifiers;
 
-    @ToString.Exclude
     @NotNull
     private UserBriefDto contact;
 
diff --git a/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/database/DatabaseCreateDto.java b/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/database/DatabaseCreateDto.java
index a20d9456bb..f87673764e 100644
--- a/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/database/DatabaseCreateDto.java
+++ b/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/database/DatabaseCreateDto.java
@@ -10,6 +10,7 @@ import lombok.extern.jackson.Jacksonized;
 @Getter
 @Setter
 @Builder
+@EqualsAndHashCode
 @NoArgsConstructor
 @AllArgsConstructor
 @Jacksonized
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 3343f23b68..5fc253c433 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
@@ -4,7 +4,6 @@ import at.tuwien.api.container.ContainerBriefDto;
 import at.tuwien.api.database.table.TableBriefDto;
 import at.tuwien.api.identifier.IdentifierBriefDto;
 import at.tuwien.api.user.UserBriefDto;
-import com.fasterxml.jackson.annotation.JsonFormat;
 import com.fasterxml.jackson.annotation.JsonProperty;
 import io.swagger.v3.oas.annotations.media.Schema;
 import jakarta.validation.constraints.NotBlank;
@@ -12,12 +11,12 @@ import jakarta.validation.constraints.NotNull;
 import lombok.*;
 import lombok.extern.jackson.Jacksonized;
 
-import java.time.Instant;
 import java.util.List;
 
 @Getter
 @Setter
 @Builder
+@EqualsAndHashCode
 @NoArgsConstructor
 @AllArgsConstructor
 @Jacksonized
@@ -62,7 +61,6 @@ public class DatabaseDto {
     @Schema(example = "true")
     private Boolean isSchemaPublic;
 
-    @ToString.Exclude
     @NotNull
     private ContainerBriefDto container;
 
@@ -72,11 +70,9 @@ public class DatabaseDto {
 
     private List<IdentifierBriefDto> subsets;
 
-    @ToString.Exclude
     @NotNull
     private UserBriefDto contact;
 
-    @ToString.Exclude
     @NotNull
     private UserBriefDto owner;
 
diff --git a/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/database/DatabaseModifyImageDto.java b/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/database/DatabaseModifyImageDto.java
index 627714f6cb..5160ae76bf 100644
--- a/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/database/DatabaseModifyImageDto.java
+++ b/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/database/DatabaseModifyImageDto.java
@@ -6,6 +6,7 @@ import lombok.extern.jackson.Jacksonized;
 @Getter
 @Setter
 @Builder
+@EqualsAndHashCode
 @NoArgsConstructor
 @AllArgsConstructor
 @Jacksonized
diff --git a/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/database/DatabaseModifyVisibilityDto.java b/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/database/DatabaseModifyVisibilityDto.java
index f5a9aa0961..e641deade2 100644
--- a/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/database/DatabaseModifyVisibilityDto.java
+++ b/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/database/DatabaseModifyVisibilityDto.java
@@ -2,14 +2,14 @@ package at.tuwien.api.database;
 
 import com.fasterxml.jackson.annotation.JsonProperty;
 import io.swagger.v3.oas.annotations.media.Schema;
-import lombok.*;
-
 import jakarta.validation.constraints.NotNull;
+import lombok.*;
 import lombok.extern.jackson.Jacksonized;
 
 @Getter
 @Setter
 @Builder
+@EqualsAndHashCode
 @NoArgsConstructor
 @AllArgsConstructor
 @Jacksonized
diff --git a/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/database/DatabaseTransferDto.java b/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/database/DatabaseTransferDto.java
index 75a517f4c1..5a8e6beb10 100644
--- a/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/database/DatabaseTransferDto.java
+++ b/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/database/DatabaseTransferDto.java
@@ -1,8 +1,7 @@
 package at.tuwien.api.database;
 
-import lombok.*;
-
 import jakarta.validation.constraints.NotNull;
+import lombok.*;
 import lombok.extern.jackson.Jacksonized;
 
 import java.util.UUID;
@@ -10,6 +9,7 @@ import java.util.UUID;
 @Getter
 @Setter
 @Builder
+@EqualsAndHashCode
 @NoArgsConstructor
 @AllArgsConstructor
 @Jacksonized
diff --git a/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/database/LicenseDto.java b/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/database/LicenseDto.java
index 20fdf01de1..a6384b3487 100644
--- a/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/database/LicenseDto.java
+++ b/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/database/LicenseDto.java
@@ -1,15 +1,15 @@
 package at.tuwien.api.database;
 
 import io.swagger.v3.oas.annotations.media.Schema;
-import lombok.*;
-
 import jakarta.validation.constraints.NotBlank;
 import jakarta.validation.constraints.NotNull;
+import lombok.*;
 import lombok.extern.jackson.Jacksonized;
 
 @Getter
 @Setter
 @Builder
+@EqualsAndHashCode
 @NoArgsConstructor
 @AllArgsConstructor
 @Jacksonized
diff --git a/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/database/LoadFileDto.java b/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/database/LoadFileDto.java
index 7c4a9a7247..65f5120d9b 100644
--- a/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/database/LoadFileDto.java
+++ b/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/database/LoadFileDto.java
@@ -9,6 +9,7 @@ import lombok.extern.jackson.Jacksonized;
 @Getter
 @Setter
 @Builder
+@EqualsAndHashCode
 @NoArgsConstructor
 @AllArgsConstructor
 @Jacksonized
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
index 984f37b790..a82f6669ed 100644
--- 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
@@ -1,14 +1,14 @@
 package at.tuwien.api.database;
 
 import io.swagger.v3.oas.annotations.media.Schema;
-import lombok.*;
-
 import jakarta.validation.constraints.NotNull;
+import lombok.*;
 import lombok.extern.jackson.Jacksonized;
 
 @Getter
 @Setter
 @Builder
+@EqualsAndHashCode
 @NoArgsConstructor
 @AllArgsConstructor
 @Jacksonized
diff --git a/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/database/UpdateDatabaseAccessDto.java b/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/database/UpdateDatabaseAccessDto.java
index 8a83c998d2..32084c865f 100644
--- a/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/database/UpdateDatabaseAccessDto.java
+++ b/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/database/UpdateDatabaseAccessDto.java
@@ -7,6 +7,7 @@ import lombok.extern.jackson.Jacksonized;
 @Getter
 @Setter
 @Builder
+@EqualsAndHashCode
 @NoArgsConstructor
 @AllArgsConstructor
 @Jacksonized
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 e29bfbc109..9b7c9fca89 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
@@ -1,7 +1,5 @@
 package at.tuwien.api.database;
 
-import com.fasterxml.jackson.annotation.JsonFormat;
-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;
@@ -9,12 +7,12 @@ import jakarta.validation.constraints.NotNull;
 import lombok.*;
 import lombok.extern.jackson.Jacksonized;
 
-import java.time.Instant;
 import java.util.UUID;
 
 @Getter
 @Setter
 @Builder
+@EqualsAndHashCode
 @NoArgsConstructor
 @AllArgsConstructor
 @Jacksonized
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 3c093d1931..4005433afe 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
@@ -1,8 +1,6 @@
 package at.tuwien.api.database;
 
 import at.tuwien.api.database.table.columns.ColumnTypeDto;
-import at.tuwien.api.database.table.columns.concepts.ConceptDto;
-import at.tuwien.api.database.table.columns.concepts.UnitDto;
 import com.fasterxml.jackson.annotation.JsonProperty;
 import io.swagger.v3.oas.annotations.media.Schema;
 import jakarta.validation.constraints.NotBlank;
@@ -14,6 +12,7 @@ import lombok.extern.jackson.Jacksonized;
 @Getter
 @Setter
 @Builder
+@EqualsAndHashCode
 @NoArgsConstructor
 @AllArgsConstructor
 @Jacksonized
@@ -29,7 +28,7 @@ public class ViewColumnDto {
 
     @NotNull
     @Schema(example = "0")
-    @JsonProperty("ordinal_position")
+    @JsonProperty("ord")
     private Integer ordinalPosition;
 
     @NotBlank
@@ -55,7 +54,7 @@ public class ViewColumnDto {
     private Long length;
 
     @NotNull
-    @JsonProperty("column_type")
+    @JsonProperty("type")
     @Schema(example = "string")
     private ColumnTypeDto columnType;
 
@@ -65,10 +64,6 @@ public class ViewColumnDto {
     @Schema(example = "0")
     private Long d;
 
-    private ConceptDto concept;
-
-    private UnitDto unit;
-
     @Size(max = 2048)
     @Schema(example = "Column comment")
     private String description;
diff --git a/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/database/ViewCreateDto.java b/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/database/ViewCreateDto.java
index e63e6933d5..142a751ec4 100644
--- a/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/database/ViewCreateDto.java
+++ b/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/database/ViewCreateDto.java
@@ -2,16 +2,16 @@ package at.tuwien.api.database;
 
 import com.fasterxml.jackson.annotation.JsonProperty;
 import io.swagger.v3.oas.annotations.media.Schema;
-import jakarta.validation.constraints.Size;
-import lombok.*;
-
 import jakarta.validation.constraints.NotBlank;
 import jakarta.validation.constraints.NotNull;
+import jakarta.validation.constraints.Size;
+import lombok.*;
 import lombok.extern.jackson.Jacksonized;
 
 @Getter
 @Setter
 @Builder
+@EqualsAndHashCode
 @NoArgsConstructor
 @AllArgsConstructor
 @Jacksonized
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 294bd04bd4..d1ee156e9b 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
@@ -2,7 +2,6 @@ package at.tuwien.api.database;
 
 import at.tuwien.api.identifier.IdentifierDto;
 import at.tuwien.api.user.UserBriefDto;
-import com.fasterxml.jackson.annotation.JsonFormat;
 import com.fasterxml.jackson.annotation.JsonProperty;
 import io.swagger.v3.oas.annotations.media.Schema;
 import jakarta.validation.constraints.NotBlank;
@@ -10,12 +9,12 @@ import jakarta.validation.constraints.NotNull;
 import lombok.*;
 import lombok.extern.jackson.Jacksonized;
 
-import java.time.Instant;
 import java.util.List;
 
 @Getter
 @Setter
 @Builder
+@EqualsAndHashCode
 @NoArgsConstructor
 @AllArgsConstructor
 @Jacksonized
@@ -29,10 +28,6 @@ public class ViewDto {
     @JsonProperty("database_id")
     private Long vdbid;
 
-    @NotNull
-    @ToString.Exclude
-    private DatabaseDto database;
-
     @NotBlank
     @Schema(example = "Air Quality")
     private String name;
diff --git a/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/database/internal/PrivilegedDatabaseDto.java b/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/database/internal/PrivilegedDatabaseDto.java
index 3317d40aee..2335ea39ba 100644
--- a/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/database/internal/PrivilegedDatabaseDto.java
+++ b/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/database/internal/PrivilegedDatabaseDto.java
@@ -64,7 +64,6 @@ public class PrivilegedDatabaseDto extends PrivilegedObjectDto {
     @Schema(example = "true")
     private Boolean isSchemaPublic;
 
-    @ToString.Exclude
     @NotNull
     private PrivilegedContainerDto container;
 
@@ -74,11 +73,9 @@ public class PrivilegedDatabaseDto extends PrivilegedObjectDto {
 
     private List<IdentifierDto> subsets;
 
-    @ToString.Exclude
     @NotNull
     private UserBriefDto contact;
 
-    @ToString.Exclude
     @NotNull
     private UserBriefDto owner;
 
diff --git a/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/database/internal/PrivilegedViewDto.java b/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/database/internal/PrivilegedViewDto.java
index 87a8805374..bda575f45d 100644
--- a/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/database/internal/PrivilegedViewDto.java
+++ b/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/database/internal/PrivilegedViewDto.java
@@ -31,7 +31,6 @@ public class PrivilegedViewDto extends PrivilegedObjectDto {
     private Long vdbid;
 
     @NotNull
-    @ToString.Exclude
     private PrivilegedDatabaseDto database;
 
     @NotBlank
diff --git a/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/database/query/ExportDto.java b/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/database/query/ExportDto.java
index 1b2b1e0386..36a13b3487 100644
--- a/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/database/query/ExportDto.java
+++ b/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/database/query/ExportDto.java
@@ -1,14 +1,14 @@
 package at.tuwien.api.database.query;
 
 import io.swagger.v3.oas.annotations.media.Schema;
-import lombok.*;
-
 import jakarta.validation.constraints.NotBlank;
+import lombok.*;
 import lombok.extern.jackson.Jacksonized;
 
 @Getter
 @Setter
 @Builder
+@EqualsAndHashCode
 @NoArgsConstructor
 @AllArgsConstructor
 @Jacksonized
diff --git a/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/database/query/ImportDto.java b/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/database/query/ImportDto.java
index a50c2d1bdf..39cb6683a1 100644
--- a/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/database/query/ImportDto.java
+++ b/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/database/query/ImportDto.java
@@ -2,15 +2,15 @@ package at.tuwien.api.database.query;
 
 import com.fasterxml.jackson.annotation.JsonProperty;
 import io.swagger.v3.oas.annotations.media.Schema;
-import lombok.*;
-
 import jakarta.validation.constraints.NotBlank;
 import jakarta.validation.constraints.NotNull;
+import lombok.*;
 import lombok.extern.jackson.Jacksonized;
 
 @Getter
 @Setter
 @Builder
+@EqualsAndHashCode
 @NoArgsConstructor
 @AllArgsConstructor
 @Jacksonized
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 28f8b61a52..90a1af28bc 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
@@ -17,6 +17,7 @@ import java.util.List;
 @Getter
 @Setter
 @Builder
+@EqualsAndHashCode
 @NoArgsConstructor
 @AllArgsConstructor
 @Jacksonized
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 b26a8c3c4e..cd1659e73c 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
@@ -16,6 +16,7 @@ import java.util.List;
 @Getter
 @Setter
 @Builder
+@EqualsAndHashCode
 @NoArgsConstructor
 @AllArgsConstructor
 @Jacksonized
diff --git a/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/database/query/QueryPersistDto.java b/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/database/query/QueryPersistDto.java
index a809819186..5bc3ac2054 100644
--- a/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/database/query/QueryPersistDto.java
+++ b/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/database/query/QueryPersistDto.java
@@ -8,6 +8,7 @@ import lombok.extern.jackson.Jacksonized;
 @Getter
 @Setter
 @Builder
+@EqualsAndHashCode
 @NoArgsConstructor
 @AllArgsConstructor
 @Jacksonized
diff --git a/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/database/query/SaveStatementDto.java b/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/database/query/SaveStatementDto.java
index 19fd6ffbaf..876dd5dfdd 100644
--- a/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/database/query/SaveStatementDto.java
+++ b/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/database/query/SaveStatementDto.java
@@ -1,14 +1,14 @@
 package at.tuwien.api.database.query;
 
 import io.swagger.v3.oas.annotations.media.Schema;
-import lombok.*;
-
 import jakarta.validation.constraints.NotBlank;
+import lombok.*;
 import lombok.extern.jackson.Jacksonized;
 
 @Getter
 @Setter
 @Builder
+@EqualsAndHashCode
 @NoArgsConstructor
 @AllArgsConstructor
 @Jacksonized
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 615948486c..29531012f1 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
@@ -1,22 +1,18 @@
 package at.tuwien.api.database.table;
 
-import at.tuwien.api.database.table.columns.ColumnBriefDto;
-import at.tuwien.api.user.UserBriefDto;
-import com.fasterxml.jackson.annotation.JsonIgnore;
 import com.fasterxml.jackson.annotation.JsonProperty;
 import io.swagger.v3.oas.annotations.media.Schema;
-import lombok.*;
-
 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
 @Builder
+@EqualsAndHashCode
 @NoArgsConstructor
 @AllArgsConstructor
 @Jacksonized
diff --git a/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/database/table/TableCreateDto.java b/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/database/table/TableCreateDto.java
index 602eef4e5d..7c3defcc0b 100644
--- a/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/database/table/TableCreateDto.java
+++ b/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/database/table/TableCreateDto.java
@@ -4,11 +4,10 @@ import at.tuwien.api.database.table.columns.ColumnCreateDto;
 import at.tuwien.api.database.table.constraints.ConstraintsCreateDto;
 import com.fasterxml.jackson.annotation.JsonProperty;
 import io.swagger.v3.oas.annotations.media.Schema;
-import jakarta.validation.constraints.Size;
-import lombok.*;
-
 import jakarta.validation.constraints.NotBlank;
 import jakarta.validation.constraints.NotNull;
+import jakarta.validation.constraints.Size;
+import lombok.*;
 import lombok.extern.jackson.Jacksonized;
 
 import java.util.List;
@@ -16,6 +15,7 @@ import java.util.List;
 @Getter
 @Setter
 @Builder
+@EqualsAndHashCode
 @NoArgsConstructor
 @AllArgsConstructor
 @Jacksonized
diff --git a/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/database/table/TableCreateRawQuery.java b/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/database/table/TableCreateRawQuery.java
index efc3842b29..ec221ae5f0 100644
--- a/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/database/table/TableCreateRawQuery.java
+++ b/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/database/table/TableCreateRawQuery.java
@@ -8,6 +8,7 @@ import java.sql.PreparedStatement;
 @Getter
 @Setter
 @Builder
+@EqualsAndHashCode
 @NoArgsConstructor
 @AllArgsConstructor
 @Jacksonized
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 2370f45429..67087d438d 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
@@ -4,7 +4,6 @@ import at.tuwien.api.database.table.columns.ColumnDto;
 import at.tuwien.api.database.table.constraints.ConstraintsDto;
 import at.tuwien.api.identifier.IdentifierDto;
 import at.tuwien.api.user.UserBriefDto;
-import com.fasterxml.jackson.annotation.JsonFormat;
 import com.fasterxml.jackson.annotation.JsonProperty;
 import io.swagger.v3.oas.annotations.media.Schema;
 import jakarta.validation.constraints.NotBlank;
@@ -13,17 +12,16 @@ import jakarta.validation.constraints.Size;
 import lombok.*;
 import lombok.extern.jackson.Jacksonized;
 
-import java.time.Instant;
 import java.util.List;
 
 @Getter
 @Setter
 @Builder
+@EqualsAndHashCode
 @NoArgsConstructor
 @AllArgsConstructor
 @Jacksonized
 @ToString
-@EqualsAndHashCode(onlyExplicitlyIncluded = true)
 public class TableDto {
 
     @NotNull
@@ -31,7 +29,6 @@ public class TableDto {
 
     @NotNull
     @JsonProperty("database_id")
-    @EqualsAndHashCode.Include
     private Long tdbid;
 
     @NotBlank
@@ -41,7 +38,6 @@ public class TableDto {
     @NotBlank
     @JsonProperty("internal_name")
     @Schema(example = "air_quality")
-    @EqualsAndHashCode.Include
     private String internalName;
 
     @Schema
diff --git a/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/database/table/TableHistoryDto.java b/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/database/table/TableHistoryDto.java
index 87dfbd2eef..35df29430f 100644
--- a/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/database/table/TableHistoryDto.java
+++ b/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/database/table/TableHistoryDto.java
@@ -2,9 +2,8 @@ package at.tuwien.api.database.table;
 
 import com.fasterxml.jackson.annotation.JsonFormat;
 import io.swagger.v3.oas.annotations.media.Schema;
-import lombok.*;
-
 import jakarta.validation.constraints.NotNull;
+import lombok.*;
 import lombok.extern.jackson.Jacksonized;
 
 import java.time.Instant;
@@ -12,6 +11,7 @@ import java.time.Instant;
 @Getter
 @Setter
 @Builder
+@EqualsAndHashCode
 @NoArgsConstructor
 @AllArgsConstructor
 @Jacksonized
diff --git a/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/database/table/TableInsertRawQuery.java b/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/database/table/TableInsertRawQuery.java
index ea4d33df5d..de6ff7feb7 100644
--- a/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/database/table/TableInsertRawQuery.java
+++ b/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/database/table/TableInsertRawQuery.java
@@ -9,6 +9,7 @@ import java.util.List;
 @Getter
 @Setter
 @Builder
+@EqualsAndHashCode
 @NoArgsConstructor
 @AllArgsConstructor
 @Jacksonized
diff --git a/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/database/table/TableStatisticDto.java b/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/database/table/TableStatisticDto.java
index 8862723b9c..6b5529a0a1 100644
--- a/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/database/table/TableStatisticDto.java
+++ b/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/database/table/TableStatisticDto.java
@@ -12,6 +12,7 @@ import java.util.Map;
 @Getter
 @Setter
 @Builder
+@EqualsAndHashCode
 @NoArgsConstructor
 @AllArgsConstructor
 @Jacksonized
@@ -35,6 +36,5 @@ public class TableStatisticDto {
     private Long avgRowLength;
 
     @NotNull
-    @ToString.Exclude
     private Map<String, ColumnStatisticDto> columns;
 }
diff --git a/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/database/table/TupleDeleteDto.java b/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/database/table/TupleDeleteDto.java
index eb626b0eaf..6c3a946e12 100644
--- a/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/database/table/TupleDeleteDto.java
+++ b/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/database/table/TupleDeleteDto.java
@@ -1,8 +1,7 @@
 package at.tuwien.api.database.table;
 
-import lombok.*;
-
 import jakarta.validation.constraints.NotNull;
+import lombok.*;
 import lombok.extern.jackson.Jacksonized;
 
 import java.util.Map;
@@ -10,6 +9,7 @@ import java.util.Map;
 @Getter
 @Setter
 @Builder
+@EqualsAndHashCode
 @NoArgsConstructor
 @AllArgsConstructor
 @Jacksonized
diff --git a/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/database/table/TupleDto.java b/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/database/table/TupleDto.java
index a428cb5726..62f57434b6 100644
--- a/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/database/table/TupleDto.java
+++ b/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/database/table/TupleDto.java
@@ -1,8 +1,7 @@
 package at.tuwien.api.database.table;
 
-import lombok.*;
-
 import jakarta.validation.constraints.NotNull;
+import lombok.*;
 import lombok.extern.jackson.Jacksonized;
 
 import java.util.Map;
@@ -10,6 +9,7 @@ import java.util.Map;
 @Getter
 @Setter
 @Builder
+@EqualsAndHashCode
 @NoArgsConstructor
 @AllArgsConstructor
 @Jacksonized
diff --git a/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/database/table/TupleUpdateDto.java b/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/database/table/TupleUpdateDto.java
index fee00469b1..be50791b94 100644
--- a/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/database/table/TupleUpdateDto.java
+++ b/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/database/table/TupleUpdateDto.java
@@ -1,8 +1,7 @@
 package at.tuwien.api.database.table;
 
-import lombok.*;
-
 import jakarta.validation.constraints.NotNull;
+import lombok.*;
 import lombok.extern.jackson.Jacksonized;
 
 import java.util.Map;
@@ -10,6 +9,7 @@ import java.util.Map;
 @Getter
 @Setter
 @Builder
+@EqualsAndHashCode
 @NoArgsConstructor
 @AllArgsConstructor
 @Jacksonized
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 9383154574..4dee5f0837 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
@@ -2,15 +2,15 @@ package at.tuwien.api.database.table.columns;
 
 import com.fasterxml.jackson.annotation.JsonProperty;
 import io.swagger.v3.oas.annotations.media.Schema;
-import lombok.*;
-
 import jakarta.validation.constraints.NotBlank;
 import jakarta.validation.constraints.NotNull;
+import lombok.*;
 import lombok.extern.jackson.Jacksonized;
 
 @Getter
 @Setter
 @Builder
+@EqualsAndHashCode
 @NoArgsConstructor
 @AllArgsConstructor
 @Jacksonized
diff --git a/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/database/table/columns/ColumnCreateDto.java b/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/database/table/columns/ColumnCreateDto.java
index 2d0696abc0..ca9bb10569 100644
--- a/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/database/table/columns/ColumnCreateDto.java
+++ b/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/database/table/columns/ColumnCreateDto.java
@@ -2,11 +2,10 @@ package at.tuwien.api.database.table.columns;
 
 import com.fasterxml.jackson.annotation.JsonProperty;
 import io.swagger.v3.oas.annotations.media.Schema;
-import jakarta.validation.constraints.Size;
-import lombok.*;
-
 import jakarta.validation.constraints.NotBlank;
 import jakarta.validation.constraints.NotNull;
+import jakarta.validation.constraints.Size;
+import lombok.*;
 import lombok.extern.jackson.Jacksonized;
 
 import java.util.List;
@@ -14,6 +13,7 @@ import java.util.List;
 @Getter
 @Setter
 @Builder
+@EqualsAndHashCode
 @NoArgsConstructor
 @AllArgsConstructor
 @Jacksonized
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 435d26522d..1f8d3b046e 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
@@ -1,10 +1,7 @@
 package at.tuwien.api.database.table.columns;
 
-import at.tuwien.api.database.ViewDto;
-import at.tuwien.api.database.table.TableDto;
-import at.tuwien.api.database.table.columns.concepts.ConceptDto;
-import at.tuwien.api.database.table.columns.concepts.UnitDto;
-import com.fasterxml.jackson.annotation.JsonIgnore;
+import at.tuwien.api.database.table.columns.concepts.ConceptBriefDto;
+import at.tuwien.api.database.table.columns.concepts.UnitBriefDto;
 import com.fasterxml.jackson.annotation.JsonProperty;
 import io.swagger.v3.oas.annotations.Parameter;
 import io.swagger.v3.oas.annotations.media.Schema;
@@ -20,11 +17,11 @@ import java.util.List;
 @Getter
 @Setter
 @Builder
+@EqualsAndHashCode
 @NoArgsConstructor
 @AllArgsConstructor
 @Jacksonized
 @ToString
-@EqualsAndHashCode(onlyExplicitlyIncluded = true)
 public class ColumnDto {
 
     @NotNull
@@ -40,7 +37,7 @@ public class ColumnDto {
 
     @NotNull
     @Schema(example = "0")
-    @JsonProperty("ordinal_position")
+    @JsonProperty("ord")
     private Integer ordinalPosition;
 
     @NotBlank
@@ -52,7 +49,6 @@ public class ColumnDto {
     @Size(max = 64)
     @JsonProperty("internal_name")
     @Schema(example = "mdb_date")
-    @EqualsAndHashCode.Include
     private String internalName;
 
     @Schema
@@ -65,7 +61,7 @@ public class ColumnDto {
     private Long length;
 
     @NotNull
-    @JsonProperty("column_type")
+    @JsonProperty("type")
     @Schema(example = "string")
     private ColumnTypeDto columnType;
 
@@ -105,23 +101,14 @@ public class ColumnDto {
     @JsonProperty("std_dev")
     private BigDecimal stdDev;
 
-    private ConceptDto concept;
+    private ConceptBriefDto concept;
 
-    private UnitDto unit;
+    private UnitBriefDto unit;
 
     @Size(max = 2048)
     @Schema(example = "Column comment")
     private String description;
 
-    @ToString.Exclude
-    @JsonIgnore
-    @EqualsAndHashCode.Include
-    private TableDto table;
-
-    @ToString.Exclude
-    @JsonIgnore
-    private transient List<ViewDto> views;
-
     @NotNull
     @JsonProperty("is_null_allowed")
     @Schema(example = "false")
diff --git a/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/database/table/columns/ColumnStatisticDto.java b/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/database/table/columns/ColumnStatisticDto.java
index 3f7ec87f3e..a7d76a47b2 100644
--- a/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/database/table/columns/ColumnStatisticDto.java
+++ b/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/database/table/columns/ColumnStatisticDto.java
@@ -6,11 +6,11 @@ import lombok.*;
 import lombok.extern.jackson.Jacksonized;
 
 import java.math.BigDecimal;
-import java.util.List;
 
 @Getter
 @Setter
 @Builder
+@EqualsAndHashCode
 @NoArgsConstructor
 @AllArgsConstructor
 @Jacksonized
diff --git a/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/database/table/columns/concepts/ColumnSemanticsUpdateDto.java b/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/database/table/columns/concepts/ColumnSemanticsUpdateDto.java
index 77a38f70b4..9c74981f14 100644
--- a/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/database/table/columns/concepts/ColumnSemanticsUpdateDto.java
+++ b/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/database/table/columns/concepts/ColumnSemanticsUpdateDto.java
@@ -7,6 +7,7 @@ import lombok.extern.jackson.Jacksonized;
 @Getter
 @Setter
 @Builder
+@EqualsAndHashCode
 @NoArgsConstructor
 @AllArgsConstructor
 @Jacksonized
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
new file mode 100644
index 0000000000..1e2b36dc66
--- /dev/null
+++ b/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/database/table/columns/concepts/ConceptBriefDto.java
@@ -0,0 +1,28 @@
+package at.tuwien.api.database.table.columns.concepts;
+
+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 ConceptBriefDto {
+
+    @NotNull
+    private Long id;
+
+    @NotBlank
+    private String uri;
+
+    private String name;
+
+    private String description;
+
+}
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 df171a5ee4..da00e64e83 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,21 +1,17 @@
 package at.tuwien.api.database.table.columns.concepts;
 
 import at.tuwien.api.database.table.columns.ColumnBriefDto;
-import com.fasterxml.jackson.annotation.JsonFormat;
-import io.swagger.v3.oas.annotations.media.Schema;
-import lombok.*;
-
 import jakarta.validation.constraints.NotBlank;
 import jakarta.validation.constraints.NotNull;
+import lombok.*;
 import lombok.extern.jackson.Jacksonized;
-import org.springframework.data.annotation.Id;
 
-import java.time.Instant;
 import java.util.List;
 
 @Getter
 @Setter
 @Builder
+@EqualsAndHashCode
 @NoArgsConstructor
 @AllArgsConstructor
 @Jacksonized
diff --git a/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/database/table/columns/concepts/ConceptSaveDto.java b/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/database/table/columns/concepts/ConceptSaveDto.java
index 159e07823c..b61d911ef9 100644
--- a/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/database/table/columns/concepts/ConceptSaveDto.java
+++ b/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/database/table/columns/concepts/ConceptSaveDto.java
@@ -7,6 +7,7 @@ import lombok.extern.jackson.Jacksonized;
 @Getter
 @Setter
 @Builder
+@EqualsAndHashCode
 @NoArgsConstructor
 @AllArgsConstructor
 @Jacksonized
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
new file mode 100644
index 0000000000..407f3708eb
--- /dev/null
+++ b/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/database/table/columns/concepts/UnitBriefDto.java
@@ -0,0 +1,27 @@
+package at.tuwien.api.database.table.columns.concepts;
+
+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 UnitBriefDto {
+
+    @NotNull
+    private Long id;
+
+    @NotBlank
+    private String uri;
+
+    private String name;
+
+    private String description;
+}
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 bd2975c0cc..48c7180c06 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,21 +1,17 @@
 package at.tuwien.api.database.table.columns.concepts;
 
 import at.tuwien.api.database.table.columns.ColumnBriefDto;
-import com.fasterxml.jackson.annotation.JsonFormat;
-import io.swagger.v3.oas.annotations.media.Schema;
-import lombok.*;
-
 import jakarta.validation.constraints.NotBlank;
 import jakarta.validation.constraints.NotNull;
+import lombok.*;
 import lombok.extern.jackson.Jacksonized;
-import org.springframework.data.annotation.Id;
 
-import java.time.Instant;
 import java.util.List;
 
 @Getter
 @Setter
 @Builder
+@EqualsAndHashCode
 @NoArgsConstructor
 @AllArgsConstructor
 @Jacksonized
diff --git a/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/database/table/columns/concepts/UnitSaveDto.java b/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/database/table/columns/concepts/UnitSaveDto.java
index 326efc48b5..530c7c8fbb 100644
--- a/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/database/table/columns/concepts/UnitSaveDto.java
+++ b/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/database/table/columns/concepts/UnitSaveDto.java
@@ -7,6 +7,7 @@ import lombok.extern.jackson.Jacksonized;
 @Getter
 @Setter
 @Builder
+@EqualsAndHashCode
 @NoArgsConstructor
 @AllArgsConstructor
 @Jacksonized
diff --git a/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/database/table/constraints/ConstraintsCreateDto.java b/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/database/table/constraints/ConstraintsCreateDto.java
index a317b08b8a..3d35a20b0c 100644
--- a/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/database/table/constraints/ConstraintsCreateDto.java
+++ b/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/database/table/constraints/ConstraintsCreateDto.java
@@ -12,6 +12,7 @@ import java.util.Set;
 @Getter
 @Setter
 @Builder
+@EqualsAndHashCode
 @NoArgsConstructor
 @AllArgsConstructor
 @Jacksonized
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 1644c95cdc..8016de9131 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
@@ -28,11 +28,9 @@ public class ForeignKeyDto {
     private List<ForeignKeyReferenceDto> references;
 
     @NotNull
-    @ToString.Exclude
     private TableBriefDto table;
 
     @NotNull
-    @ToString.Exclude
     @JsonProperty("referenced_table")
     private TableBriefDto referencedTable;
 
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 111903d926..55fcc46ecf 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
@@ -22,11 +22,9 @@ public class ForeignKeyReferenceDto {
     private ForeignKeyBriefDto foreignKey;
 
     @NotNull
-    @ToString.Exclude
     private ColumnBriefDto column;
 
     @NotNull
-    @ToString.Exclude
     @JsonProperty("referenced_column")
     private ColumnBriefDto referencedColumn;
 }
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 25ad3f5d17..80df5d443b 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
@@ -18,10 +18,8 @@ public class PrimaryKeyDto {
     private Long id;
 
     @NotNull
-    @ToString.Exclude
     private TableBriefDto table;
 
     @NotNull
-    @ToString.Exclude
     private ColumnBriefDto column;
 }
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 05de537844..2bcc9d6cf4 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
@@ -27,10 +27,8 @@ public class UniqueDto {
     private String name;
 
     @NotNull
-    @ToString.Exclude
     private TableBriefDto table;
 
     @NotNull
-    @ToString.Exclude
     private List<ColumnDto> columns;
 }
diff --git a/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/database/table/internal/PrivilegedTableDto.java b/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/database/table/internal/PrivilegedTableDto.java
index 33fe8c4789..64b23f17c4 100644
--- a/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/database/table/internal/PrivilegedTableDto.java
+++ b/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/database/table/internal/PrivilegedTableDto.java
@@ -24,7 +24,7 @@ import java.util.List;
 @AllArgsConstructor
 @Jacksonized
 @ToString
-@EqualsAndHashCode(onlyExplicitlyIncluded = true)
+@EqualsAndHashCode
 public class PrivilegedTableDto extends PrivilegedObjectDto {
 
     @NotNull
@@ -32,7 +32,6 @@ public class PrivilegedTableDto extends PrivilegedObjectDto {
 
     @NotNull
     @JsonProperty("database_id")
-    @EqualsAndHashCode.Include
     private Long tdbid;
 
     @NotBlank
@@ -42,7 +41,6 @@ public class PrivilegedTableDto extends PrivilegedObjectDto {
     @NotBlank
     @JsonProperty("internal_name")
     @Schema(example = "air_quality")
-    @EqualsAndHashCode.Include
     private String internalName;
 
     @Schema
diff --git a/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/error/ApiErrorDto.java b/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/error/ApiErrorDto.java
index c58f152d40..bb271f5ed6 100644
--- a/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/error/ApiErrorDto.java
+++ b/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/error/ApiErrorDto.java
@@ -1,15 +1,15 @@
 package at.tuwien.api.error;
 
 import io.swagger.v3.oas.annotations.media.Schema;
+import jakarta.validation.constraints.NotNull;
 import lombok.*;
 import lombok.extern.jackson.Jacksonized;
 import org.springframework.http.HttpStatus;
 
-import jakarta.validation.constraints.NotNull;
-
 @Getter
 @Setter
 @Builder
+@EqualsAndHashCode
 @NoArgsConstructor
 @AllArgsConstructor
 @Jacksonized
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 42675c889e..9c166f869c 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
@@ -13,6 +13,7 @@ import org.springframework.data.annotation.Id;
 @Getter
 @Setter
 @Builder
+@EqualsAndHashCode
 @NoArgsConstructor
 @AllArgsConstructor
 @Jacksonized
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 616074f233..55e6ff7621 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
@@ -11,6 +11,7 @@ import org.springframework.data.annotation.Id;
 @Getter
 @Setter
 @Builder
+@EqualsAndHashCode
 @NoArgsConstructor
 @AllArgsConstructor
 @Jacksonized
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 bff087c590..87baf48706 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
@@ -2,7 +2,7 @@ package at.tuwien.api.identifier;
 
 import at.tuwien.api.database.LanguageTypeDto;
 import at.tuwien.api.database.LicenseDto;
-import at.tuwien.api.user.UserDto;
+import at.tuwien.api.user.UserBriefDto;
 import com.fasterxml.jackson.annotation.JsonFormat;
 import com.fasterxml.jackson.annotation.JsonProperty;
 import io.swagger.v3.oas.annotations.media.Schema;
@@ -13,11 +13,11 @@ import lombok.extern.jackson.Jacksonized;
 
 import java.time.Instant;
 import java.util.List;
-import java.util.UUID;
 
 @Getter
 @Setter
 @Builder
+@EqualsAndHashCode
 @NoArgsConstructor
 @AllArgsConstructor
 @Jacksonized
@@ -71,7 +71,6 @@ public class IdentifierDto {
     @Schema(description = "query hash in sha512")
     private String queryHash;
 
-    @NotNull
     @Schema(example = "2021-03-12T15:26:21Z")
     @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd'T'HH:mm:ss.SSSXXX", timezone = "UTC")
     private Instant execution;
@@ -92,7 +91,7 @@ public class IdentifierDto {
     private String publisher;
 
     @NotNull
-    private UserDto owner;
+    private UserBriefDto owner;
 
     @JsonProperty("publication_day")
     @Schema(example = "15")
@@ -116,8 +115,4 @@ public class IdentifierDto {
 
     private IdentifierStatusTypeDto status;
 
-    @NotNull
-    @JsonProperty("created_by")
-    private UUID createdBy;
-
 }
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 ba0cc5b6dd..921ba3eb98 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
@@ -11,6 +11,7 @@ import org.springframework.data.annotation.Id;
 @Getter
 @Setter
 @Builder
+@EqualsAndHashCode
 @NoArgsConstructor
 @AllArgsConstructor
 @Jacksonized
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 70d6006bc2..9333a05ce9 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
@@ -11,6 +11,7 @@ import org.springframework.data.annotation.Id;
 @Getter
 @Setter
 @Builder
+@EqualsAndHashCode
 @NoArgsConstructor
 @AllArgsConstructor
 @Jacksonized
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 271333c49d..74525bf711 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
@@ -16,6 +16,7 @@ import java.time.Instant;
 @Getter
 @Setter
 @Builder
+@EqualsAndHashCode
 @NoArgsConstructor
 @AllArgsConstructor
 @Jacksonized
diff --git a/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/ldap/UserDto.java b/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/ldap/UserDto.java
index 3cb0a86e73..e6aec08226 100644
--- a/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/ldap/UserDto.java
+++ b/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/ldap/UserDto.java
@@ -9,15 +9,14 @@ import java.util.UUID;
 @Getter
 @Setter
 @Builder
+@EqualsAndHashCode
 @NoArgsConstructor
 @AllArgsConstructor
 @Jacksonized
 @ToString
-@EqualsAndHashCode(onlyExplicitlyIncluded = true)
 public class UserDto {
 
     @NotNull
-    @EqualsAndHashCode.Include
     private UUID id;
 
     @NotNull
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 8143b18fb9..e9c15c212e 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
@@ -13,6 +13,7 @@ import java.time.Instant;
 @Getter
 @Setter
 @Builder
+@EqualsAndHashCode
 @NoArgsConstructor
 @AllArgsConstructor
 @Jacksonized
diff --git a/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/orcid/OrcidDto.java b/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/orcid/OrcidDto.java
index 4520b692bf..c4ea89b005 100644
--- a/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/orcid/OrcidDto.java
+++ b/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/orcid/OrcidDto.java
@@ -9,6 +9,7 @@ import lombok.extern.jackson.Jacksonized;
 @Getter
 @Setter
 @Builder
+@EqualsAndHashCode
 @NoArgsConstructor
 @AllArgsConstructor
 @Jacksonized
diff --git a/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/orcid/activities/OrcidActivitiesSummaryDto.java b/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/orcid/activities/OrcidActivitiesSummaryDto.java
index 544754cedf..625611abd2 100644
--- a/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/orcid/activities/OrcidActivitiesSummaryDto.java
+++ b/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/orcid/activities/OrcidActivitiesSummaryDto.java
@@ -7,6 +7,7 @@ import lombok.extern.jackson.Jacksonized;
 @Getter
 @Setter
 @Builder
+@EqualsAndHashCode
 @NoArgsConstructor
 @AllArgsConstructor
 @Jacksonized
diff --git a/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/orcid/activities/employments/OrcidEmploymentsDto.java b/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/orcid/activities/employments/OrcidEmploymentsDto.java
index 5b8b6a3957..dea853b62b 100644
--- a/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/orcid/activities/employments/OrcidEmploymentsDto.java
+++ b/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/orcid/activities/employments/OrcidEmploymentsDto.java
@@ -8,6 +8,7 @@ import lombok.extern.jackson.Jacksonized;
 @Getter
 @Setter
 @Builder
+@EqualsAndHashCode
 @NoArgsConstructor
 @AllArgsConstructor
 @Jacksonized
diff --git a/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/orcid/activities/employments/affiliation/OrcidAffiliationGroupDto.java b/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/orcid/activities/employments/affiliation/OrcidAffiliationGroupDto.java
index 5a4ace0158..a82a88869b 100644
--- a/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/orcid/activities/employments/affiliation/OrcidAffiliationGroupDto.java
+++ b/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/orcid/activities/employments/affiliation/OrcidAffiliationGroupDto.java
@@ -7,6 +7,7 @@ import lombok.extern.jackson.Jacksonized;
 @Getter
 @Setter
 @Builder
+@EqualsAndHashCode
 @NoArgsConstructor
 @AllArgsConstructor
 @Jacksonized
diff --git a/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/orcid/activities/employments/affiliation/group/OrcidEmploymentSummaryDto.java b/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/orcid/activities/employments/affiliation/group/OrcidEmploymentSummaryDto.java
index df3c038abf..984dc8a6d0 100644
--- a/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/orcid/activities/employments/affiliation/group/OrcidEmploymentSummaryDto.java
+++ b/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/orcid/activities/employments/affiliation/group/OrcidEmploymentSummaryDto.java
@@ -8,6 +8,7 @@ import lombok.extern.jackson.Jacksonized;
 @Getter
 @Setter
 @Builder
+@EqualsAndHashCode
 @NoArgsConstructor
 @AllArgsConstructor
 @Jacksonized
diff --git a/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/orcid/activities/employments/affiliation/group/summary/OrcidSummaryDto.java b/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/orcid/activities/employments/affiliation/group/summary/OrcidSummaryDto.java
index e10e72481e..1377a73dba 100644
--- a/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/orcid/activities/employments/affiliation/group/summary/OrcidSummaryDto.java
+++ b/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/orcid/activities/employments/affiliation/group/summary/OrcidSummaryDto.java
@@ -8,6 +8,7 @@ import lombok.extern.jackson.Jacksonized;
 @Getter
 @Setter
 @Builder
+@EqualsAndHashCode
 @NoArgsConstructor
 @AllArgsConstructor
 @Jacksonized
diff --git a/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/orcid/activities/employments/affiliation/group/summary/organization/OrcidOrganizationDto.java b/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/orcid/activities/employments/affiliation/group/summary/organization/OrcidOrganizationDto.java
index 53c59b4d1a..149af1b3e6 100644
--- a/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/orcid/activities/employments/affiliation/group/summary/organization/OrcidOrganizationDto.java
+++ b/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/orcid/activities/employments/affiliation/group/summary/organization/OrcidOrganizationDto.java
@@ -8,6 +8,7 @@ import lombok.extern.jackson.Jacksonized;
 @Getter
 @Setter
 @Builder
+@EqualsAndHashCode
 @NoArgsConstructor
 @AllArgsConstructor
 @Jacksonized
diff --git a/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/orcid/activities/employments/affiliation/group/summary/organization/disambiguated/OrcidDisambiguatedDto.java b/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/orcid/activities/employments/affiliation/group/summary/organization/disambiguated/OrcidDisambiguatedDto.java
index 5d2e31c523..c5ed53e37f 100644
--- a/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/orcid/activities/employments/affiliation/group/summary/organization/disambiguated/OrcidDisambiguatedDto.java
+++ b/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/orcid/activities/employments/affiliation/group/summary/organization/disambiguated/OrcidDisambiguatedDto.java
@@ -7,6 +7,7 @@ import lombok.extern.jackson.Jacksonized;
 @Getter
 @Setter
 @Builder
+@EqualsAndHashCode
 @NoArgsConstructor
 @AllArgsConstructor
 @Jacksonized
diff --git a/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/orcid/person/OrcidPersonDto.java b/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/orcid/person/OrcidPersonDto.java
index 31c7f9235f..f7de2794d7 100644
--- a/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/orcid/person/OrcidPersonDto.java
+++ b/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/orcid/person/OrcidPersonDto.java
@@ -7,6 +7,7 @@ import lombok.extern.jackson.Jacksonized;
 @Getter
 @Setter
 @Builder
+@EqualsAndHashCode
 @NoArgsConstructor
 @AllArgsConstructor
 @Jacksonized
diff --git a/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/orcid/person/name/OrcidNameDto.java b/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/orcid/person/name/OrcidNameDto.java
index a36f9b044e..44c2ac0e6b 100644
--- a/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/orcid/person/name/OrcidNameDto.java
+++ b/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/orcid/person/name/OrcidNameDto.java
@@ -7,6 +7,7 @@ import lombok.extern.jackson.Jacksonized;
 @Getter
 @Setter
 @Builder
+@EqualsAndHashCode
 @NoArgsConstructor
 @AllArgsConstructor
 @Jacksonized
diff --git a/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/orcid/person/name/OrcidValueDto.java b/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/orcid/person/name/OrcidValueDto.java
index baad8b0b78..251a39c23c 100644
--- a/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/orcid/person/name/OrcidValueDto.java
+++ b/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/orcid/person/name/OrcidValueDto.java
@@ -6,6 +6,7 @@ import lombok.extern.jackson.Jacksonized;
 @Getter
 @Setter
 @Builder
+@EqualsAndHashCode
 @NoArgsConstructor
 @AllArgsConstructor
 @Jacksonized
diff --git a/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/ror/RorDto.java b/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/ror/RorDto.java
index d0c0f54bd5..8e9407885c 100644
--- a/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/ror/RorDto.java
+++ b/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/ror/RorDto.java
@@ -6,6 +6,7 @@ import lombok.extern.jackson.Jacksonized;
 @Getter
 @Setter
 @Builder
+@EqualsAndHashCode
 @NoArgsConstructor
 @AllArgsConstructor
 @Jacksonized
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 4a3436daba..b908b6e09e 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
@@ -10,6 +10,7 @@ import lombok.extern.jackson.Jacksonized;
 @Getter
 @Setter
 @Builder
+@EqualsAndHashCode
 @NoArgsConstructor
 @AllArgsConstructor
 @Jacksonized
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 09099331ec..686cd9f030 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
@@ -14,6 +14,7 @@ import java.time.Instant;
 @Getter
 @Setter
 @Builder
+@EqualsAndHashCode
 @NoArgsConstructor
 @AllArgsConstructor
 @Jacksonized
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 309561b966..79ea8d6a5a 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
@@ -13,7 +13,7 @@ import lombok.extern.jackson.Jacksonized;
 @NoArgsConstructor
 @AllArgsConstructor
 @Jacksonized
-@EqualsAndHashCode(onlyExplicitlyIncluded = true)
+@EqualsAndHashCode
 @ToString
 public class TableColumnEntityDto {
 
@@ -33,7 +33,6 @@ public class TableColumnEntityDto {
     private Long columnId;
 
     @NotBlank
-    @EqualsAndHashCode.Include
     @Schema(example = "https://www.wikidata.org/entity/Q1686799")
     private String uri;
 
diff --git a/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/user/ExchangeUpdatePermissionsDto.java b/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/user/ExchangeUpdatePermissionsDto.java
index d68514d42f..f545f62041 100644
--- a/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/user/ExchangeUpdatePermissionsDto.java
+++ b/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/user/ExchangeUpdatePermissionsDto.java
@@ -1,14 +1,14 @@
 package at.tuwien.api.user;
 
 import io.swagger.v3.oas.annotations.media.Schema;
-import lombok.*;
-
 import jakarta.validation.constraints.NotBlank;
+import lombok.*;
 import lombok.extern.jackson.Jacksonized;
 
 @Getter
 @Setter
 @Builder
+@EqualsAndHashCode
 @NoArgsConstructor
 @AllArgsConstructor
 @Jacksonized
diff --git a/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/user/GrantedAuthorityDto.java b/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/user/GrantedAuthorityDto.java
index 08a7ce10d6..07e0029a71 100644
--- a/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/user/GrantedAuthorityDto.java
+++ b/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/user/GrantedAuthorityDto.java
@@ -7,6 +7,7 @@ import lombok.extern.jackson.Jacksonized;
 @Getter
 @Setter
 @Builder
+@EqualsAndHashCode
 @NoArgsConstructor
 @AllArgsConstructor
 @Jacksonized
diff --git a/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/user/UserAttributesDto.java b/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/user/UserAttributesDto.java
index 713fbdb043..ef9bae650c 100644
--- a/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/user/UserAttributesDto.java
+++ b/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/user/UserAttributesDto.java
@@ -9,6 +9,7 @@ import lombok.extern.jackson.Jacksonized;
 @Getter
 @Setter
 @Builder
+@EqualsAndHashCode
 @NoArgsConstructor
 @AllArgsConstructor
 @Jacksonized
diff --git a/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/user/UserBriefDto.java b/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/user/UserBriefDto.java
index 08ce389cbf..d245bbaf4c 100644
--- a/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/user/UserBriefDto.java
+++ b/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/user/UserBriefDto.java
@@ -2,9 +2,8 @@ package at.tuwien.api.user;
 
 import com.fasterxml.jackson.annotation.JsonProperty;
 import io.swagger.v3.oas.annotations.media.Schema;
-import lombok.*;
-
 import jakarta.validation.constraints.NotNull;
+import lombok.*;
 import lombok.extern.jackson.Jacksonized;
 
 import java.util.UUID;
@@ -12,6 +11,7 @@ import java.util.UUID;
 @Getter
 @Setter
 @Builder
+@EqualsAndHashCode
 @NoArgsConstructor
 @AllArgsConstructor
 @Jacksonized
diff --git a/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/user/UserDetailsDto.java b/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/user/UserDetailsDto.java
index e72a0505ab..cd5e8fd3e0 100644
--- a/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/user/UserDetailsDto.java
+++ b/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/user/UserDetailsDto.java
@@ -1,17 +1,18 @@
 package at.tuwien.api.user;
 
+import jakarta.validation.constraints.Email;
+import jakarta.validation.constraints.NotNull;
 import lombok.*;
 import lombok.extern.jackson.Jacksonized;
 import org.springframework.security.core.GrantedAuthority;
 import org.springframework.security.core.userdetails.UserDetails;
 
-import jakarta.validation.constraints.Email;
-import jakarta.validation.constraints.NotNull;
 import java.util.List;
 
 @Getter
 @Setter
 @Builder
+@EqualsAndHashCode
 @NoArgsConstructor
 @AllArgsConstructor
 @Jacksonized
diff --git a/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/user/UserDto.java b/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/user/UserDto.java
index 00a866bfd2..343d582b55 100644
--- a/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/user/UserDto.java
+++ b/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/user/UserDto.java
@@ -2,9 +2,8 @@ package at.tuwien.api.user;
 
 import com.fasterxml.jackson.annotation.JsonProperty;
 import io.swagger.v3.oas.annotations.media.Schema;
-import lombok.*;
-
 import jakarta.validation.constraints.NotNull;
+import lombok.*;
 import lombok.extern.jackson.Jacksonized;
 
 import java.util.UUID;
@@ -12,15 +11,14 @@ import java.util.UUID;
 @Getter
 @Setter
 @Builder
+@EqualsAndHashCode
 @NoArgsConstructor
 @AllArgsConstructor
 @Jacksonized
 @ToString
-@EqualsAndHashCode(onlyExplicitlyIncluded = true)
 public class UserDto {
 
     @NotNull
-    @EqualsAndHashCode.Include
     @Schema(example = "1ffc7b0e-9aeb-4e8b-b8f1-68f3936155b4")
     private UUID id;
 
diff --git a/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/user/UserEmailDto.java b/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/user/UserEmailDto.java
index 0459cb96e8..caaf332497 100644
--- a/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/user/UserEmailDto.java
+++ b/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/user/UserEmailDto.java
@@ -1,15 +1,15 @@
 package at.tuwien.api.user;
 
 import io.swagger.v3.oas.annotations.media.Schema;
-import lombok.*;
-
 import jakarta.validation.constraints.Email;
 import jakarta.validation.constraints.NotNull;
+import lombok.*;
 import lombok.extern.jackson.Jacksonized;
 
 @Getter
 @Setter
 @Builder
+@EqualsAndHashCode
 @NoArgsConstructor
 @AllArgsConstructor
 @Jacksonized
diff --git a/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/user/UserForgotDto.java b/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/user/UserForgotDto.java
index ffc95c3f8a..5ebcbae742 100644
--- a/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/user/UserForgotDto.java
+++ b/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/user/UserForgotDto.java
@@ -1,14 +1,14 @@
 package at.tuwien.api.user;
 
 import io.swagger.v3.oas.annotations.media.Schema;
-import lombok.*;
-
 import jakarta.validation.constraints.Email;
+import lombok.*;
 import lombok.extern.jackson.Jacksonized;
 
 @Getter
 @Setter
 @Builder
+@EqualsAndHashCode
 @NoArgsConstructor
 @AllArgsConstructor
 @Jacksonized
diff --git a/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/user/UserModifyPasswordDto.java b/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/user/UserModifyPasswordDto.java
index 5fe224ee77..2b86672cc2 100644
--- a/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/user/UserModifyPasswordDto.java
+++ b/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/user/UserModifyPasswordDto.java
@@ -1,14 +1,14 @@
 package at.tuwien.api.user;
 
 import io.swagger.v3.oas.annotations.media.Schema;
-import lombok.*;
-
 import jakarta.validation.constraints.NotNull;
+import lombok.*;
 import lombok.extern.jackson.Jacksonized;
 
 @Getter
 @Setter
 @Builder
+@EqualsAndHashCode
 @NoArgsConstructor
 @AllArgsConstructor
 @Jacksonized
diff --git a/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/user/UserPasswordDto.java b/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/user/UserPasswordDto.java
index bcd21ded02..dcf5393284 100644
--- a/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/user/UserPasswordDto.java
+++ b/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/user/UserPasswordDto.java
@@ -1,13 +1,13 @@
 package at.tuwien.api.user;
 
-import lombok.*;
-
 import jakarta.validation.constraints.NotNull;
+import lombok.*;
 import lombok.extern.jackson.Jacksonized;
 
 @Getter
 @Setter
 @Builder
+@EqualsAndHashCode
 @NoArgsConstructor
 @AllArgsConstructor
 @Jacksonized
diff --git a/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/user/UserResetDto.java b/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/user/UserResetDto.java
index 919c3b12af..6cac59a904 100644
--- a/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/user/UserResetDto.java
+++ b/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/user/UserResetDto.java
@@ -1,13 +1,13 @@
 package at.tuwien.api.user;
 
-import lombok.*;
-
 import jakarta.validation.constraints.NotNull;
+import lombok.*;
 import lombok.extern.jackson.Jacksonized;
 
 @Getter
 @Setter
 @Builder
+@EqualsAndHashCode
 @NoArgsConstructor
 @AllArgsConstructor
 @Jacksonized
diff --git a/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/user/UserRolesDto.java b/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/user/UserRolesDto.java
index 06d7c83f26..5667f38ec6 100644
--- a/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/user/UserRolesDto.java
+++ b/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/user/UserRolesDto.java
@@ -1,8 +1,7 @@
 package at.tuwien.api.user;
 
-import lombok.*;
-
 import jakarta.validation.constraints.NotNull;
+import lombok.*;
 import lombok.extern.jackson.Jacksonized;
 
 import java.util.List;
@@ -10,6 +9,7 @@ import java.util.List;
 @Getter
 @Setter
 @Builder
+@EqualsAndHashCode
 @NoArgsConstructor
 @AllArgsConstructor
 @Jacksonized
diff --git a/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/user/UserThemeSetDto.java b/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/user/UserThemeSetDto.java
index 17cd44442a..3f5b899df8 100644
--- a/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/user/UserThemeSetDto.java
+++ b/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/user/UserThemeSetDto.java
@@ -1,14 +1,14 @@
 package at.tuwien.api.user;
 
 import io.swagger.v3.oas.annotations.media.Schema;
-import lombok.*;
-
 import jakarta.validation.constraints.NotNull;
+import lombok.*;
 import lombok.extern.jackson.Jacksonized;
 
 @Getter
 @Setter
 @Builder
+@EqualsAndHashCode
 @NoArgsConstructor
 @AllArgsConstructor
 @Jacksonized
diff --git a/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/user/UserUpdateDto.java b/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/user/UserUpdateDto.java
index 7f536fba36..68d674a7c2 100644
--- a/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/user/UserUpdateDto.java
+++ b/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/user/UserUpdateDto.java
@@ -8,6 +8,7 @@ import lombok.extern.jackson.Jacksonized;
 @Getter
 @Setter
 @Builder
+@EqualsAndHashCode
 @NoArgsConstructor
 @AllArgsConstructor
 @Jacksonized
diff --git a/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/user/UserUpdatePermissionsDto.java b/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/user/UserUpdatePermissionsDto.java
index f54d2c4749..99f1eab30a 100644
--- a/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/user/UserUpdatePermissionsDto.java
+++ b/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/user/UserUpdatePermissionsDto.java
@@ -1,14 +1,14 @@
 package at.tuwien.api.user;
 
 import io.swagger.v3.oas.annotations.media.Schema;
-import lombok.*;
-
 import jakarta.validation.constraints.NotBlank;
+import lombok.*;
 import lombok.extern.jackson.Jacksonized;
 
 @Getter
 @Setter
 @Builder
+@EqualsAndHashCode
 @NoArgsConstructor
 @AllArgsConstructor
 @Jacksonized
diff --git a/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/user/external/ExternalMetadataDto.java b/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/user/external/ExternalMetadataDto.java
index 80d5d04d6d..fb40af0948 100644
--- a/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/user/external/ExternalMetadataDto.java
+++ b/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/user/external/ExternalMetadataDto.java
@@ -4,11 +4,11 @@ import at.tuwien.api.user.external.affiliation.ExternalAffiliationDto;
 import com.fasterxml.jackson.annotation.JsonProperty;
 import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.*;
-import lombok.extern.jackson.Jacksonized;
 
 @Getter
 @Setter
 @Builder
+@EqualsAndHashCode
 @NoArgsConstructor
 @AllArgsConstructor
 public class ExternalMetadataDto {
diff --git a/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/user/external/affiliation/ExternalAffiliationDto.java b/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/user/external/affiliation/ExternalAffiliationDto.java
index 0e56dea2a2..d8d30894bc 100644
--- a/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/user/external/affiliation/ExternalAffiliationDto.java
+++ b/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/user/external/affiliation/ExternalAffiliationDto.java
@@ -8,6 +8,7 @@ import lombok.extern.jackson.Jacksonized;
 @Getter
 @Setter
 @Builder
+@EqualsAndHashCode
 @NoArgsConstructor
 @AllArgsConstructor
 @Jacksonized
diff --git a/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/user/internal/PrivilegedUserDto.java b/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/user/internal/PrivilegedUserDto.java
index b0600cfefd..56e24cd815 100644
--- a/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/user/internal/PrivilegedUserDto.java
+++ b/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/user/internal/PrivilegedUserDto.java
@@ -15,15 +15,14 @@ import java.util.UUID;
 @Getter
 @Setter
 @Builder
+@EqualsAndHashCode
 @NoArgsConstructor
 @AllArgsConstructor
 @Jacksonized
 @ToString
-@EqualsAndHashCode(onlyExplicitlyIncluded = true)
 public class PrivilegedUserDto extends PrivilegedObjectDto {
 
     @NotNull
-    @EqualsAndHashCode.Include
     @Schema(example = "1ffc7b0e-9aeb-4e8b-b8f1-68f3936155b4")
     private UUID id;
 
diff --git a/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/user/internal/UpdateUserPasswordDto.java b/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/user/internal/UpdateUserPasswordDto.java
index a498dd4a31..c89e795bd3 100644
--- a/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/user/internal/UpdateUserPasswordDto.java
+++ b/dbrepo-metadata-service/api/src/main/java/at/tuwien/api/user/internal/UpdateUserPasswordDto.java
@@ -7,6 +7,7 @@ import lombok.extern.jackson.Jacksonized;
 @Getter
 @Setter
 @Builder
+@EqualsAndHashCode
 @NoArgsConstructor
 @AllArgsConstructor
 @Jacksonized
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 bbd994fa7e..1ecedc5e16 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
@@ -9,11 +9,11 @@ import static jakarta.persistence.GenerationType.IDENTITY;
 @Data
 @Entity
 @Builder
+@EqualsAndHashCode
 @ToString
 @AllArgsConstructor
 @NoArgsConstructor
 @EntityListeners(AuditingEntityListener.class)
-@EqualsAndHashCode
 @Table(name = "mdb_image_operators")
 public class Operator {
 
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 079aac84c7..6a2622be3e 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
@@ -33,6 +33,7 @@ public class DatabaseAccess {
     private UUID huserid;
 
     @ToString.Exclude
+    @EqualsAndHashCode.Exclude
     @org.springframework.data.annotation.Transient
     @ManyToOne(fetch = FetchType.LAZY)
     @JoinColumns({
diff --git a/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/user/User.java b/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/user/User.java
index bc17ab9bc9..fd87852c6e 100644
--- a/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/user/User.java
+++ b/dbrepo-metadata-service/entities/src/main/java/at/tuwien/entities/user/User.java
@@ -52,6 +52,7 @@ public class User {
     private String language;
 
     @OneToMany(fetch = FetchType.LAZY)
+    @EqualsAndHashCode.Exclude
     @JoinColumns({
             @JoinColumn(name = "user_id", referencedColumnName = "ID", insertable = false, updatable = false)
     })
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 c2de8a0f52..fe8e4385e2 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
@@ -236,8 +236,6 @@ public interface MetadataMapper {
     })
     DataCiteDoiRelatedIdentifier relatedIdentifierToDoiRelatedIdentifier(RelatedIdentifier relatedIdentifier);
 
-    Date instantToDate(Instant data);
-
     @Mappings({
             @Mapping(target = "givenNames", source = "person.name.givenNames.value"),
             @Mapping(target = "familyName", source = "person.name.familyName.value"),
@@ -721,9 +719,7 @@ public interface MetadataMapper {
     @Mappings({
             @Mapping(target = "tableId", source = "table.id"),
             @Mapping(target = "databaseId", source = "table.database.id"),
-            @Mapping(target = "description", source = "description"),
-            @Mapping(target = "table", ignore = true),
-            @Mapping(target = "views", ignore = true)
+            @Mapping(target = "description", source = "description")
     })
     ColumnDto tableColumnToColumnDto(TableColumn data);
 
@@ -785,6 +781,7 @@ public interface MetadataMapper {
             @Mapping(target = "attributes.orcid", source = "orcid"),
             @Mapping(target = "attributes.affiliation", source = "affiliation"),
             @Mapping(target = "attributes.theme", source = "theme"),
+            @Mapping(target = "attributes.mariadbPassword", source = "mariadbPassword"),
             @Mapping(target = "name", expression = "java(userToFullName(data))"),
             @Mapping(target = "qualifiedName", expression = "java(userToQualifiedName(data))"),
     })
@@ -825,9 +822,6 @@ public interface MetadataMapper {
                 .trim();
     }
 
-    @Mappings({
-            @Mapping(target = "database.views", ignore = true)
-    })
     ViewDto viewToViewDto(View data);
 
     @Mappings({
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 9b3379523c..793cf45a8d 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
@@ -76,8 +76,7 @@ public class DatabaseEndpoint extends AbstractEndpoint {
                             array = @ArraySchema(schema = @Schema(implementation = DatabaseDto.class)))}),
     })
     public ResponseEntity<List<DatabaseBriefDto>> list(@RequestParam(name = "internal_name", required = false) String internalName,
-                                                       Principal principal) throws UserNotFoundException,
-            DatabaseNotFoundException {
+                                                       Principal principal) {
         log.debug("endpoint list databases, internalName={}", internalName);
         final List<Database> databases;
         if (principal != null) {
diff --git a/dbrepo-metadata-service/rest-service/src/main/java/at/tuwien/endpoints/UserEndpoint.java b/dbrepo-metadata-service/rest-service/src/main/java/at/tuwien/endpoints/UserEndpoint.java
index 4f49904baa..b8952b5c56 100644
--- a/dbrepo-metadata-service/rest-service/src/main/java/at/tuwien/endpoints/UserEndpoint.java
+++ b/dbrepo-metadata-service/rest-service/src/main/java/at/tuwien/endpoints/UserEndpoint.java
@@ -71,8 +71,7 @@ public class UserEndpoint extends AbstractEndpoint {
                             mediaType = "application/json",
                             array = @ArraySchema(schema = @Schema(implementation = UserBriefDto.class)))}),
     })
-    public ResponseEntity<List<UserBriefDto>> findAll(@RequestParam(required = false) String username)
-            throws UserNotFoundException {
+    public ResponseEntity<List<UserBriefDto>> findAll(@RequestParam(required = false) String username) {
         log.debug("endpoint find all users, username={}", username);
         if (username == null) {
             return ResponseEntity.ok(userService.findAll()
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 2d4fa43506..9b778e67fb 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,10 @@
 package at.tuwien.mapper;
 
 import at.tuwien.api.database.DatabaseDto;
+import at.tuwien.api.database.ViewBriefDto;
 import at.tuwien.api.database.ViewDto;
+import at.tuwien.api.database.table.TableBriefDto;
+import at.tuwien.api.identifier.IdentifierDto;
 import at.tuwien.api.identifier.IdentifierTypeDto;
 import at.tuwien.api.user.UserBriefDto;
 import at.tuwien.api.user.UserDto;
@@ -133,16 +136,92 @@ public class MetadataMapperUnitTest extends AbstractUnitTest {
     public void userToUserDto_succeeds() {
 
         /* test */
-        final UserDto response = metadataMapper.userToUserDto(USER_1);
-        assertEquals(USER_1_DTO, response);
+        assertEquals(USER_1_DTO, metadataMapper.userToUserDto(USER_1));
+        assertEquals(USER_2_DTO, metadataMapper.userToUserDto(USER_2));
+        assertEquals(USER_3_DTO, metadataMapper.userToUserDto(USER_3));
+        assertEquals(USER_4_DTO, metadataMapper.userToUserDto(USER_4));
+        assertEquals(USER_5_DTO, metadataMapper.userToUserDto(USER_5));
+    }
+
+    @Test
+    public void identifierToIdentifierDto_succeeds() {
+
+        /* test */
+        assertEquals(IDENTIFIER_1_DTO, metadataMapper.identifierToIdentifierDto(IDENTIFIER_1));
+        assertEquals(IDENTIFIER_2_DTO, metadataMapper.identifierToIdentifierDto(IDENTIFIER_2));
+        assertEquals(IDENTIFIER_3_DTO, metadataMapper.identifierToIdentifierDto(IDENTIFIER_3));
+        assertEquals(IDENTIFIER_4_DTO, metadataMapper.identifierToIdentifierDto(IDENTIFIER_4));
+        assertEquals(IDENTIFIER_5_DTO, metadataMapper.identifierToIdentifierDto(IDENTIFIER_5));
+        assertEquals(IDENTIFIER_6_DTO, metadataMapper.identifierToIdentifierDto(IDENTIFIER_6));
+        assertEquals(IDENTIFIER_7_DTO, metadataMapper.identifierToIdentifierDto(IDENTIFIER_7));
     }
 
     @Test
     public void viewToViewDto_succeeds() {
 
         /* test */
-        final ViewDto response = metadataMapper.viewToViewDto(VIEW_1);
-        assertEquals(VIEW_1_DTO, response);
+        assertEquals(VIEW_1_DTO, metadataMapper.viewToViewDto(VIEW_1));
+        assertEquals(VIEW_2_DTO, metadataMapper.viewToViewDto(VIEW_2));
+        assertEquals(VIEW_3_DTO, metadataMapper.viewToViewDto(VIEW_3));
+        assertEquals(VIEW_4_DTO, metadataMapper.viewToViewDto(VIEW_4));
+        assertEquals(VIEW_5_DTO, metadataMapper.viewToViewDto(VIEW_5));
+    }
+
+    @Test
+    public void tableToTableBriefDto_succeeds() {
+
+        /* test */
+        assertEquals(TABLE_1_BRIEF_DTO, metadataMapper.tableToTableBriefDto(TABLE_1));
+        assertEquals(TABLE_2_BRIEF_DTO, metadataMapper.tableToTableBriefDto(TABLE_2));
+        assertEquals(TABLE_3_BRIEF_DTO, metadataMapper.tableToTableBriefDto(TABLE_3));
+        assertEquals(TABLE_4_BRIEF_DTO, metadataMapper.tableToTableBriefDto(TABLE_4));
+        assertEquals(TABLE_5_BRIEF_DTO, metadataMapper.tableToTableBriefDto(TABLE_5));
+        assertEquals(TABLE_6_BRIEF_DTO, metadataMapper.tableToTableBriefDto(TABLE_6));
+        assertEquals(TABLE_7_BRIEF_DTO, metadataMapper.tableToTableBriefDto(TABLE_7));
+        assertEquals(TABLE_8_BRIEF_DTO, metadataMapper.tableToTableBriefDto(TABLE_8));
+        assertEquals(TABLE_9_BRIEF_DTO, metadataMapper.tableToTableBriefDto(TABLE_9));
+    }
+
+    @Test
+    public void containerToContainerBriefDto_succeeds() {
+
+        /* test */
+        assertEquals(CONTAINER_1_BRIEF_DTO, metadataMapper.containerToContainerBriefDto(CONTAINER_1));
+    }
+
+    @Test
+    public void bannerMessageToBannerMessageDto_succeeds() {
+
+        /* test */
+        assertEquals(BANNER_MESSAGE_1_DTO, metadataMapper.bannerMessageToBannerMessageDto(BANNER_MESSAGE_1));
+    }
+
+    @Test
+    public void containerImageToImageBriefDto_succeeds() {
+
+        /* test */
+        assertEquals(IMAGE_1_BRIEF_DTO, metadataMapper.containerImageToImageBriefDto(IMAGE_1));
+    }
+
+    @Test
+    public void containerImageToImageDto_succeeds() {
+
+        /* test */
+        assertEquals(IMAGE_1_DTO, metadataMapper.containerImageToImageDto(IMAGE_1));
+    }
+
+    @Test
+    public void ontologyToOntologyBriefDto_succeeds() {
+
+        /* test */
+        assertEquals(ONTOLOGY_1_BRIEF_DTO, metadataMapper.ontologyToOntologyBriefDto(ONTOLOGY_1));
+    }
+
+    @Test
+    public void ontologyToOntologyDto_succeeds() {
+
+        /* test */
+        assertEquals(ONTOLOGY_1_DTO, metadataMapper.ontologyToOntologyDto(ONTOLOGY_1));
     }
 
 }
diff --git a/dbrepo-metadata-service/test/src/main/java/at/tuwien/test/AbstractUnitTest.java b/dbrepo-metadata-service/test/src/main/java/at/tuwien/test/AbstractUnitTest.java
index c37739e7e7..61121a4b04 100644
--- a/dbrepo-metadata-service/test/src/main/java/at/tuwien/test/AbstractUnitTest.java
+++ b/dbrepo-metadata-service/test/src/main/java/at/tuwien/test/AbstractUnitTest.java
@@ -11,6 +11,7 @@ import java.util.List;
 public abstract class AbstractUnitTest extends BaseTest {
 
     public void genesis() {
+        IMAGE_1_DTO.setOperators(IMAGE_1_OPERATORS_DTO);
         CONTAINER_1_PRIVILEGED_DTO.setImage(IMAGE_1_DTO);
         IMAGE_1.setOperators(new LinkedList<>(IMAGE_1_OPERATORS));
         CONTAINER_1.setDatabases(new LinkedList<>(List.of(DATABASE_1, DATABASE_2, DATABASE_3)));
@@ -41,7 +42,6 @@ public abstract class AbstractUnitTest extends BaseTest {
         TABLE_1.setConstraints(TABLE_1_CONSTRAINTS);
         TABLE_1_PRIVILEGED_DTO.setColumns(new LinkedList<>(TABLE_1_COLUMNS_DTO));
         TABLE_1_PRIVILEGED_DTO.setDatabase(DATABASE_1_PRIVILEGED_DTO);
-        VIEW_1_DTO.setDatabase(DATABASE_1_DTO);
         VIEW_1_DTO.setIdentifiers(VIEW_1_DTO_IDENTIFIERS);
         DATABASE_1.setIdentifiers(new LinkedList<>(List.of(IDENTIFIER_1, IDENTIFIER_2, IDENTIFIER_3, IDENTIFIER_4)));
         IDENTIFIER_1.setDatabase(DATABASE_1);
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 ee38a1d6b0..9980b6dd2b 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
@@ -10,10 +10,7 @@ import at.tuwien.api.auth.RefreshTokenRequestDto;
 import at.tuwien.api.auth.SignupRequestDto;
 import at.tuwien.api.container.ContainerBriefDto;
 import at.tuwien.api.container.ContainerDto;
-import at.tuwien.api.container.image.ImageBriefDto;
-import at.tuwien.api.container.image.ImageChangeDto;
-import at.tuwien.api.container.image.ImageCreateDto;
-import at.tuwien.api.container.image.ImageDto;
+import at.tuwien.api.container.image.*;
 import at.tuwien.api.container.internal.PrivilegedContainerDto;
 import at.tuwien.api.database.*;
 import at.tuwien.api.database.internal.CreateDatabaseDto;
@@ -26,10 +23,7 @@ import at.tuwien.api.database.table.TableCreateDto;
 import at.tuwien.api.database.table.TableDto;
 import at.tuwien.api.database.table.TableStatisticDto;
 import at.tuwien.api.database.table.columns.*;
-import at.tuwien.api.database.table.columns.concepts.ConceptDto;
-import at.tuwien.api.database.table.columns.concepts.ConceptSaveDto;
-import at.tuwien.api.database.table.columns.concepts.UnitDto;
-import at.tuwien.api.database.table.columns.concepts.UnitSaveDto;
+import at.tuwien.api.database.table.columns.concepts.*;
 import at.tuwien.api.database.table.constraints.ConstraintsCreateDto;
 import at.tuwien.api.database.table.constraints.ConstraintsDto;
 import at.tuwien.api.database.table.constraints.foreign.*;
@@ -42,6 +36,7 @@ import at.tuwien.api.datacite.doi.DataCiteDoi;
 import at.tuwien.api.identifier.*;
 import at.tuwien.api.keycloak.*;
 import at.tuwien.api.maintenance.BannerMessageCreateDto;
+import at.tuwien.api.maintenance.BannerMessageDto;
 import at.tuwien.api.maintenance.BannerMessageTypeDto;
 import at.tuwien.api.maintenance.BannerMessageUpdateDto;
 import at.tuwien.api.orcid.OrcidDto;
@@ -54,9 +49,7 @@ import at.tuwien.api.orcid.activities.employments.affiliation.group.summary.orga
 import at.tuwien.api.orcid.person.OrcidPersonDto;
 import at.tuwien.api.orcid.person.name.OrcidNameDto;
 import at.tuwien.api.orcid.person.name.OrcidValueDto;
-import at.tuwien.api.semantics.EntityDto;
-import at.tuwien.api.semantics.OntologyCreateDto;
-import at.tuwien.api.semantics.OntologyModifyDto;
+import at.tuwien.api.semantics.*;
 import at.tuwien.api.user.UserAttributesDto;
 import at.tuwien.api.user.UserDto;
 import at.tuwien.api.user.*;
@@ -316,6 +309,13 @@ public abstract class BaseTest {
             .description(CONCEPT_1_DESCRIPTION)
             .build();
 
+    public final static ConceptBriefDto CONCEPT_1_BRIEF_DTO = ConceptBriefDto.builder()
+            .id(CONCEPT_1_ID)
+            .uri(CONCEPT_1_URI)
+            .name(CONCEPT_1_NAME)
+            .description(CONCEPT_1_DESCRIPTION)
+            .build();
+
     public final static TableColumnConcept CONCEPT_1 = TableColumnConcept.builder()
             .id(CONCEPT_1_ID)
             .uri(CONCEPT_1_URI)
@@ -349,6 +349,13 @@ public abstract class BaseTest {
             .description(CONCEPT_2_DESCRIPTION)
             .build();
 
+    public final static ConceptBriefDto CONCEPT_2_BRIEF_DTO = ConceptBriefDto.builder()
+            .id(CONCEPT_2_ID)
+            .uri(CONCEPT_2_URI)
+            .name(CONCEPT_2_NAME)
+            .description(CONCEPT_2_DESCRIPTION)
+            .build();
+
     public final static TableColumnConcept CONCEPT_2 = TableColumnConcept.builder()
             .id(CONCEPT_2_ID)
             .uri(CONCEPT_2_URI)
@@ -376,6 +383,13 @@ public abstract class BaseTest {
             .description(UNIT_1_DESCRIPTION)
             .build();
 
+    public final static UnitBriefDto UNIT_1_BRIEF_DTO = UnitBriefDto.builder()
+            .id(UNIT_1_ID)
+            .uri(UNIT_1_URI)
+            .name(UNIT_1_NAME)
+            .description(UNIT_1_DESCRIPTION)
+            .build();
+
     public final static TableColumnUnit UNIT_1 = TableColumnUnit.builder()
             .id(UNIT_1_ID)
             .uri(UNIT_1_URI)
@@ -409,6 +423,13 @@ public abstract class BaseTest {
             .description(UNIT_2_DESCRIPTION)
             .build();
 
+    public final static UnitBriefDto UNIT_2_BRIEF_DTO = UnitBriefDto.builder()
+            .id(UNIT_2_ID)
+            .uri(UNIT_2_URI)
+            .name(UNIT_2_NAME)
+            .description(UNIT_2_DESCRIPTION)
+            .build();
+
     public final static TableColumnUnit UNIT_2 = TableColumnUnit.builder()
             .id(UNIT_2_ID)
             .uri(UNIT_2_URI)
@@ -637,7 +658,7 @@ public abstract class BaseTest {
     public final static String USER_2_PASSWORD = "junit2";
     @SuppressWarnings("java:S2068")
     public final static String USER_2_DATABASE_PASSWORD = "*9AA70A8B0EEFAFCB5BED5BDEF6EE264D5DA915AE" /* junit2 */;
-    public final static String USER_2_QUALIFIED_NAME = "@" + USER_2_USERNAME + " — " + USER_2_FIRSTNAME + " " + USER_2_LASTNAME;
+    public final static String USER_2_QUALIFIED_NAME = USER_2_FIRSTNAME + " " + USER_2_LASTNAME + " — @" + USER_2_USERNAME;
     public final static Boolean USER_2_VERIFIED = true;
     public final static Boolean USER_2_TOTP = false;
     public final static Long USER_2_NOT_BEFORE = 0L;
@@ -687,6 +708,7 @@ public abstract class BaseTest {
             .firstname(USER_2_FIRSTNAME)
             .lastname(USER_2_LASTNAME)
             .name(USER_2_NAME)
+            .orcid(USER_2_ORCID_URL)
             .qualifiedName(USER_2_QUALIFIED_NAME)
             .build();
 
@@ -746,7 +768,7 @@ public abstract class BaseTest {
     public final static String USER_3_PASSWORD = "password";
     @SuppressWarnings("java:S2068")
     public final static String USER_3_DATABASE_PASSWORD = "*D65FCA043964B63E849DD6334699ECB065905DA4" /* junit3 */;
-    public final static String USER_3_QUALIFIED_NAME = "@" + USER_3_USERNAME + " — " + USER_3_FIRSTNAME + " " + USER_3_LASTNAME;
+    public final static String USER_3_QUALIFIED_NAME = USER_3_FIRSTNAME + " " + USER_3_LASTNAME + " — @" + USER_3_USERNAME;
     public final static Boolean USER_3_VERIFIED = true;
     public final static Boolean USER_3_TOTP = false;
     public final static Long USER_3_NOT_BEFORE = 0L;
@@ -782,6 +804,8 @@ public abstract class BaseTest {
             .firstname(USER_3_FIRSTNAME)
             .lastname(USER_3_LASTNAME)
             .name(USER_3_NAME)
+            .qualifiedName(USER_3_QUALIFIED_NAME)
+            .attributes(USER_3_ATTRIBUTES_DTO)
             .build();
 
     public final static UserBriefDto USER_3_BRIEF_DTO = UserBriefDto.builder()
@@ -790,6 +814,7 @@ public abstract class BaseTest {
             .firstname(USER_3_FIRSTNAME)
             .lastname(USER_3_LASTNAME)
             .name(USER_3_NAME)
+            .qualifiedName(USER_3_QUALIFIED_NAME)
             .build();
 
     public final static UserDetails USER_3_DETAILS = UserDetailsDto.builder()
@@ -840,7 +865,7 @@ public abstract class BaseTest {
     public final static String USER_4_PASSWORD = "junit4";
     @SuppressWarnings("java:S2068")
     public final static String USER_4_DATABASE_PASSWORD = "*C20EF5C6875857DEFA9BE6E9B62DD76AAAE51882" /* junit4 */;
-    public final static String USER_4_QUALIFIED_NAME = "@" + USER_4_USERNAME + " — " + USER_4_FIRSTNAME + " " + USER_4_LASTNAME;
+    public final static String USER_4_QUALIFIED_NAME = USER_4_FIRSTNAME + " " + USER_4_LASTNAME + " — @" + USER_4_USERNAME;
     public final static String USER_4_EMAIL = "junit4@ossdip.at";
     public final static Boolean USER_4_VERIFIED = true;
     public final static Boolean USER_4_ENABLED = true;
@@ -874,7 +899,9 @@ public abstract class BaseTest {
             .username(USER_4_USERNAME)
             .firstname(USER_4_FIRSTNAME)
             .lastname(USER_4_LASTNAME)
+            .name(USER_4_NAME)
             .attributes(USER_4_ATTRIBUTES_DTO)
+            .qualifiedName(USER_4_QUALIFIED_NAME)
             .build();
 
     public final static UserBriefDto USER_4_BRIEF_DTO = UserBriefDto.builder()
@@ -882,6 +909,8 @@ public abstract class BaseTest {
             .username(USER_4_USERNAME)
             .firstname(USER_4_FIRSTNAME)
             .lastname(USER_4_LASTNAME)
+            .name(USER_4_NAME)
+            .qualifiedName(USER_4_QUALIFIED_NAME)
             .build();
 
     public final static UserDetails USER_4_DETAILS = UserDetailsDto.builder()
@@ -908,17 +937,17 @@ public abstract class BaseTest {
 
     public final static UUID USER_5_ID = UUID.fromString("28ff851d-d7bc-4422-959c-edd7a5b15630");
     public final static UUID USER_5_LDAP_ID = UUID.fromString("28ff851d-d7bc-4422-959c-edd7a5b15630");
-    public final static String USER_5_USERNAME = "system";
-    public final static String USER_5_FIRSTNAME = "System";
-    public final static String USER_5_LASTNAME = "System";
-    public final static String USER_5_NAME = "System System";
+    public final static String USER_5_USERNAME = "nobody";
+    public final static String USER_5_FIRSTNAME = "No";
+    public final static String USER_5_LASTNAME = "Body";
+    public final static String USER_5_NAME = "No Body";
     public final static String USER_5_AFFILIATION = "TU Wien";
     public final static String USER_5_ORCID = null;
     @SuppressWarnings("java:S2068")
     public final static String USER_5_PASSWORD = "junit5";
     @SuppressWarnings("java:S2068")
     public final static String USER_5_DATABASE_PASSWORD = "*C20EF5C6875857DEFA9BE6E9B62DD76AAAE51882" /* junit5 */;
-    public final static String USER_5_QUALIFIED_NAME = "@" + USER_5_USERNAME + " — " + USER_5_FIRSTNAME + " " + USER_5_LASTNAME;
+    public final static String USER_5_QUALIFIED_NAME = USER_5_FIRSTNAME + " " + USER_5_LASTNAME + " — @" + USER_5_USERNAME;
     public final static String USER_5_EMAIL = "system@ossdip.at";
     public final static Boolean USER_5_VERIFIED = true;
     public final static Boolean USER_5_ENABLED = true;
@@ -938,6 +967,7 @@ public abstract class BaseTest {
             .username(USER_5_USERNAME)
             .firstname(USER_5_FIRSTNAME)
             .lastname(USER_5_LASTNAME)
+            .name(USER_5_NAME)
             .qualifiedName(USER_5_QUALIFIED_NAME)
             .attributes(USER_5_ATTRIBUTES_DTO)
             .build();
@@ -1059,6 +1089,7 @@ public abstract class BaseTest {
             .driverClass(IMAGE_1_DRIVER)
             .defaultPort(IMAGE_1_PORT)
             .isDefault(IMAGE_1_IS_DEFAULT)
+            .operators(new LinkedList<>()) /* IMAGE_1_OPERATORS */
             .build();
 
     public final static ImageDto IMAGE_1_DTO = ImageDto.builder()
@@ -1071,6 +1102,7 @@ public abstract class BaseTest {
             .driverClass(IMAGE_1_DRIVER)
             .defaultPort(IMAGE_1_PORT)
             .isDefault(IMAGE_1_IS_DEFAULT)
+            .operators(null)
             .build();
 
     public final static ImageBriefDto IMAGE_1_BRIEF_DTO = ImageBriefDto.builder()
@@ -1081,14 +1113,27 @@ public abstract class BaseTest {
             .jdbcMethod(IMAGE_1_JDBC)
             .build();
 
-    public final static List<Operator> IMAGE_1_OPERATORS = List.of(
+    public final static Long IMAGE_1_OPERATORS_1_ID = 1L;
+    public final static String IMAGE_1_OPERATORS_1_DISPLAY_NAME = "XOR";
+    public final static String IMAGE_1_OPERATORS_1_VALUE = "XOR";
+    public final static String IMAGE_1_OPERATORS_1_DOCUMENTATION = "https://mariadb.com/kb/en/xor/";
+
+    public final static List<Operator> IMAGE_1_OPERATORS = new LinkedList<>(List.of(
             Operator.builder()
-                    .id(1L)
+                    .id(IMAGE_1_OPERATORS_1_ID)
                     .image(IMAGE_1)
-                    .displayName("XOR")
-                    .value("XOR")
-                    .documentation("https://mariadb.com/kb/en/xor/")
-                    .build());
+                    .displayName(IMAGE_1_OPERATORS_1_DISPLAY_NAME)
+                    .value(IMAGE_1_OPERATORS_1_VALUE)
+                    .documentation(IMAGE_1_OPERATORS_1_DOCUMENTATION)
+                    .build()));
+
+    public final static List<OperatorDto> IMAGE_1_OPERATORS_DTO = new LinkedList<>(List.of(
+            OperatorDto.builder()
+                    .id(IMAGE_1_OPERATORS_1_ID)
+                    .displayName(IMAGE_1_OPERATORS_1_DISPLAY_NAME)
+                    .value(IMAGE_1_OPERATORS_1_VALUE)
+                    .documentation(IMAGE_1_OPERATORS_1_DOCUMENTATION)
+                    .build()));
 
     public final static Long CONTAINER_1_ID = 1L;
     public final static ContainerImage CONTAINER_1_IMAGE = IMAGE_1;
@@ -1636,12 +1681,11 @@ public abstract class BaseTest {
 
     public final static List<ColumnDto> TABLE_1_COLUMNS_DTO = List.of(ColumnDto.builder()
                     .id(1L)
-                    .table(TABLE_1_DTO)
                     .tableId(TABLE_1_ID)
                     .databaseId(DATABASE_1_ID)
+                    .ordinalPosition(0)
                     .name("id")
                     .internalName("id")
-                    .ordinalPosition(0)
                     .columnType(ColumnTypeDto.SERIAL)
                     .isNullAllowed(false)
                     .enums(null)
@@ -1649,12 +1693,11 @@ public abstract class BaseTest {
                     .build(),
             ColumnDto.builder()
                     .id(2L)
-                    .table(TABLE_1_DTO)
                     .tableId(TABLE_1_ID)
                     .databaseId(DATABASE_1_ID)
+                    .ordinalPosition(1)
                     .name("Date")
                     .internalName("date")
-                    .ordinalPosition(1)
                     .columnType(ColumnTypeDto.DATE)
                     .isNullAllowed(true)
                     .enums(null)
@@ -1662,12 +1705,11 @@ public abstract class BaseTest {
                     .build(),
             ColumnDto.builder()
                     .id(3L)
-                    .table(TABLE_1_DTO)
                     .tableId(TABLE_1_ID)
                     .databaseId(DATABASE_1_ID)
+                    .ordinalPosition(2)
                     .name("Location")
                     .internalName("location")
-                    .ordinalPosition(2)
                     .columnType(ColumnTypeDto.VARCHAR)
                     .size(255L)
                     .isNullAllowed(true)
@@ -1676,12 +1718,11 @@ public abstract class BaseTest {
                     .build(),
             ColumnDto.builder()
                     .id(4L)
-                    .table(TABLE_1_DTO)
                     .tableId(TABLE_1_ID)
                     .databaseId(DATABASE_1_ID)
+                    .ordinalPosition(3)
                     .name("MinTemp")
                     .internalName("mintemp")
-                    .ordinalPosition(3)
                     .columnType(ColumnTypeDto.DECIMAL)
                     .size(10L)
                     .d(0L)
@@ -1691,17 +1732,16 @@ public abstract class BaseTest {
                     .build(),
             ColumnDto.builder()
                     .id(5L)
-                    .table(TABLE_1_DTO)
                     .tableId(TABLE_1_ID)
                     .databaseId(DATABASE_1_ID)
+                    .ordinalPosition(4)
                     .name("Rainfall")
                     .internalName("rainfall")
-                    .ordinalPosition(4)
                     .columnType(ColumnTypeDto.DECIMAL)
                     .size(10L)
                     .d(0L)
-                    .concept(CONCEPT_1_DTO)
-                    .unit(UNIT_1_DTO)
+                    .concept(CONCEPT_1_BRIEF_DTO)
+                    .unit(UNIT_1_BRIEF_DTO)
                     .isNullAllowed(true)
                     .enums(null)
                     .sets(null)
@@ -1709,6 +1749,7 @@ public abstract class BaseTest {
 
     public final static TableBriefDto TABLE_1_BRIEF_DTO = TableBriefDto.builder()
             .id(TABLE_1_ID)
+            .databaseId(DATABASE_1_ID)
             .internalName(TABLE_1_INTERNAL_NAME)
             .isVersioned(TABLE_1_VERSIONED)
             .isPublic(TABLE_1_IS_PUBLIC)
@@ -1829,6 +1870,7 @@ public abstract class BaseTest {
 
     public final static TableBriefDto TABLE_2_BRIEF_DTO = TableBriefDto.builder()
             .id(TABLE_2_ID)
+            .databaseId(DATABASE_1_ID)
             .internalName(TABLE_2_INTERNALNAME)
             .isVersioned(TABLE_2_VERSIONED)
             .isPublic(TABLE_2_IS_PUBLIC)
@@ -1900,6 +1942,7 @@ public abstract class BaseTest {
 
     public final static TableBriefDto TABLE_3_BRIEF_DTO = TableBriefDto.builder()
             .id(TABLE_3_ID)
+            .databaseId(DATABASE_1_ID)
             .internalName(TABLE_3_INTERNALNAME)
             .isVersioned(TABLE_3_VERSIONED)
             .isPublic(TABLE_3_IS_PUBLIC)
@@ -2018,6 +2061,7 @@ public abstract class BaseTest {
 
     public final static TableBriefDto TABLE_5_BRIEF_DTO = TableBriefDto.builder()
             .id(TABLE_5_ID)
+            .databaseId(DATABASE_2_ID)
             .internalName(TABLE_5_INTERNALNAME)
             .isVersioned(TABLE_5_VERSIONED)
             .isPublic(TABLE_5_IS_PUBLIC)
@@ -2077,6 +2121,7 @@ public abstract class BaseTest {
 
     public final static TableBriefDto TABLE_6_BRIEF_DTO = TableBriefDto.builder()
             .id(TABLE_6_ID)
+            .databaseId(DATABASE_2_ID)
             .internalName(TABLE_6_INTERNALNAME)
             .isVersioned(TABLE_6_VERSIONED)
             .isPublic(TABLE_6_IS_PUBLIC)
@@ -2136,6 +2181,7 @@ public abstract class BaseTest {
 
     public final static TableBriefDto TABLE_7_BRIEF_DTO = TableBriefDto.builder()
             .id(TABLE_7_ID)
+            .databaseId(DATABASE_2_ID)
             .internalName(TABLE_7_INTERNAL_NAME)
             .isVersioned(TABLE_7_VERSIONED)
             .isPublic(TABLE_7_IS_PUBLIC)
@@ -2207,6 +2253,7 @@ public abstract class BaseTest {
 
     public final static TableBriefDto TABLE_4_BRIEF_DTO = TableBriefDto.builder()
             .id(TABLE_4_ID)
+            .databaseId(DATABASE_1_ID)
             .internalName(TABLE_4_INTERNALNAME)
             .description(TABLE_4_DESCRIPTION)
             .name(TABLE_4_NAME)
@@ -2349,6 +2396,7 @@ public abstract class BaseTest {
 
     public final static TableBriefDto TABLE_8_BRIEF_DTO = TableBriefDto.builder()
             .id(TABLE_8_ID)
+            .databaseId(DATABASE_3_ID)
             .internalName(TABLE_8_INTERNAL_NAME)
             .description(TABLE_8_DESCRIPTION)
             .isVersioned(TABLE_8_VERSIONED)
@@ -2424,6 +2472,7 @@ public abstract class BaseTest {
 
     public final static TableBriefDto TABLE_9_BRIEF_DTO = TableBriefDto.builder()
             .id(TABLE_9_ID)
+            .databaseId(DATABASE_4_ID)
             .internalName(TABLE_9_INTERNAL_NAME)
             .description(TABLE_9_DESCRIPTION)
             .isVersioned(TABLE_9_VERSIONED)
@@ -2470,7 +2519,6 @@ public abstract class BaseTest {
                     .table(TABLE_9)
                     .name(COLUMN_9_1_NAME)
                     .internalName(COLUMN_9_1_INTERNAL_NAME)
-                    .ordinalPosition(0)
                     .columnType(TableColumnType.VARCHAR)
                     .size(255L)
                     .isNullAllowed(false)
@@ -2483,7 +2531,6 @@ public abstract class BaseTest {
                     .table(TABLE_9)
                     .name("lat")
                     .internalName("lat")
-                    .ordinalPosition(1)
                     .columnType(TableColumnType.DECIMAL)
                     .size(10L)
                     .d(0L)
@@ -2497,7 +2544,6 @@ public abstract class BaseTest {
                     .table(TABLE_9)
                     .name("lng")
                     .internalName("lng")
-                    .ordinalPosition(2)
                     .columnType(TableColumnType.DECIMAL)
                     .size(10L)
                     .d(0L)
@@ -2509,10 +2555,8 @@ public abstract class BaseTest {
     public final static List<ColumnDto> TABLE_9_COLUMNS_DTO = List.of(ColumnDto.builder()
                     .id(COLUMN_9_1_ID)
                     .ordinalPosition(0)
-                    .table(TABLE_9_DTO)
                     .name(COLUMN_9_1_NAME)
                     .internalName(COLUMN_9_1_INTERNAL_NAME)
-                    .ordinalPosition(0)
                     .columnType(ColumnTypeDto.VARCHAR)
                     .size(255L)
                     .isNullAllowed(false)
@@ -2522,10 +2566,8 @@ public abstract class BaseTest {
             ColumnDto.builder()
                     .id(COLUMN_9_2_ID)
                     .ordinalPosition(1)
-                    .table(TABLE_9_DTO)
                     .name("lat")
                     .internalName("lat")
-                    .ordinalPosition(1)
                     .columnType(ColumnTypeDto.DECIMAL)
                     .size(10L)
                     .d(0L)
@@ -2536,10 +2578,8 @@ public abstract class BaseTest {
             ColumnDto.builder()
                     .id(COLUMN_9_3_ID)
                     .ordinalPosition(2)
-                    .table(TABLE_9_DTO)
                     .name("lng")
                     .internalName("lng")
-                    .ordinalPosition(2)
                     .columnType(ColumnTypeDto.DECIMAL)
                     .size(10L)
                     .d(0L)
@@ -2592,7 +2632,9 @@ public abstract class BaseTest {
     public final static String ONTOLOGY_1_URI = "http://www.ontology-of-units-of-measure.org/resource/om-2/";
     public final static String ONTOLOGY_1_URI_PATTERN = "http://www.ontology-of-units-of-measure.org/resource/om-2/.*";
     public final static String ONTOLOGY_1_SPARQL_ENDPOINT = null;
+    public final static Boolean ONTOLOGY_1_SPARQL = false;
     public final static String ONTOLOGY_1_RDF_PATH = "rdf/om-2.0.rdf";
+    public final static Boolean ONTOLOGY_1_RDF = true;
     public final static UUID ONTOLOGY_1_CREATED_BY = USER_1_ID;
 
     public final static Ontology ONTOLOGY_1 = Ontology.builder()
@@ -2604,6 +2646,26 @@ public abstract class BaseTest {
             .rdfPath(ONTOLOGY_1_RDF_PATH)
             .build();
 
+    public final static OntologyDto ONTOLOGY_1_DTO = OntologyDto.builder()
+            .id(ONTOLOGY_1_ID)
+            .prefix(ONTOLOGY_1_PREFIX)
+            .uri(ONTOLOGY_1_URI)
+            .uriPattern(ONTOLOGY_1_URI_PATTERN)
+            .sparqlEndpoint(ONTOLOGY_1_SPARQL_ENDPOINT)
+            .sparql(ONTOLOGY_1_SPARQL)
+            .rdfPath(ONTOLOGY_1_RDF_PATH)
+            .rdf(ONTOLOGY_1_RDF)
+            .build();
+
+    public final static OntologyBriefDto ONTOLOGY_1_BRIEF_DTO = OntologyBriefDto.builder()
+            .id(ONTOLOGY_1_ID)
+            .prefix(ONTOLOGY_1_PREFIX)
+            .uri(ONTOLOGY_1_URI)
+            .uriPattern(ONTOLOGY_1_URI_PATTERN)
+            .sparql(ONTOLOGY_1_SPARQL)
+            .rdf(ONTOLOGY_1_RDF)
+            .build();
+
     public final static OntologyCreateDto ONTOLOGY_1_CREATE_DTO = OntologyCreateDto.builder()
             .prefix(ONTOLOGY_1_PREFIX)
             .uri(ONTOLOGY_1_URI)
@@ -2761,7 +2823,6 @@ public abstract class BaseTest {
     public final static List<ColumnDto> TABLE_8_COLUMNS_DTO = List.of(ColumnDto.builder()
                     .id(COLUMN_8_1_ID)
                     .ordinalPosition(COLUMN_8_1_ORDINALPOS)
-                    .table(TABLE_8_DTO)
                     .name(COLUMN_8_1_NAME)
                     .internalName(COLUMN_8_1_INTERNAL_NAME)
                     .columnType(COLUMN_8_1_TYPE_DTO)
@@ -2770,7 +2831,6 @@ public abstract class BaseTest {
             ColumnDto.builder()
                     .id(COLUMN_8_2_ID)
                     .ordinalPosition(COLUMN_8_2_ORDINALPOS)
-                    .table(TABLE_8_DTO)
                     .name(COLUMN_8_2_NAME)
                     .internalName(COLUMN_8_2_INTERNAL_NAME)
                     .columnType(COLUMN_8_2_TYPE_DTO)
@@ -2779,7 +2839,6 @@ public abstract class BaseTest {
             ColumnDto.builder()
                     .id(COLUMN_8_3_ID)
                     .ordinalPosition(COLUMN_8_3_ORDINALPOS)
-                    .table(TABLE_8_DTO)
                     .name(COLUMN_8_3_NAME)
                     .internalName(COLUMN_8_3_INTERNAL_NAME)
                     .columnType(COLUMN_8_3_TYPE_DTO)
@@ -3190,7 +3249,6 @@ public abstract class BaseTest {
                     .table(TABLE_2)
                     .name("location")
                     .internalName("location")
-                    .ordinalPosition(0)
                     .columnType(TableColumnType.VARCHAR)
                     .size(255L)
                     .isNullAllowed(false)
@@ -3203,7 +3261,6 @@ public abstract class BaseTest {
                     .table(TABLE_2)
                     .name("lat")
                     .internalName("lat")
-                    .ordinalPosition(1)
                     .columnType(TableColumnType.DECIMAL)
                     .size(10L)
                     .d(0L)
@@ -3217,7 +3274,6 @@ public abstract class BaseTest {
                     .table(TABLE_2)
                     .name("lng")
                     .internalName("lng")
-                    .ordinalPosition(2)
                     .columnType(TableColumnType.DECIMAL)
                     .size(10L)
                     .d(0L)
@@ -3242,12 +3298,11 @@ public abstract class BaseTest {
 
     public final static List<ColumnDto> TABLE_2_COLUMNS_DTO = List.of(ColumnDto.builder()
                     .id(COLUMN_2_1_ID)
-                    .table(TABLE_2_DTO)
                     .tableId(TABLE_2_ID)
                     .databaseId(DATABASE_1_ID)
+                    .ordinalPosition(0)
                     .name("location")
                     .internalName("location")
-                    .ordinalPosition(0)
                     .columnType(ColumnTypeDto.VARCHAR)
                     .size(255L)
                     .isNullAllowed(false)
@@ -3256,12 +3311,11 @@ public abstract class BaseTest {
                     .build(),
             ColumnDto.builder()
                     .id(COLUMN_2_2_ID)
-                    .table(TABLE_2_DTO)
                     .tableId(TABLE_2_ID)
                     .databaseId(DATABASE_1_ID)
+                    .ordinalPosition(1)
                     .name("lat")
                     .internalName("lat")
-                    .ordinalPosition(1)
                     .columnType(ColumnTypeDto.DOUBLE)
                     .size(22L)
                     .isNullAllowed(true)
@@ -3270,12 +3324,11 @@ public abstract class BaseTest {
                     .build(),
             ColumnDto.builder()
                     .id(COLUMN_2_3_ID)
-                    .table(TABLE_2_DTO)
                     .tableId(TABLE_2_ID)
                     .databaseId(DATABASE_1_ID)
+                    .ordinalPosition(2)
                     .name("lng")
                     .internalName("lng")
-                    .ordinalPosition(2)
                     .columnType(ColumnTypeDto.DOUBLE)
                     .size(22L)
                     .isNullAllowed(true)
@@ -3749,7 +3802,6 @@ public abstract class BaseTest {
     public final static List<ColumnDto> TABLE_3_COLUMNS_DTO = List.of(ColumnDto.builder()
                     .id(COLUMN_3_1_ID)
                     .tableId(TABLE_3_ID)
-                    .table(TABLE_3_DTO)
                     .databaseId(DATABASE_1_ID)
                     .columnType(ColumnTypeDto.BIGINT)
                     .name("id")
@@ -3761,7 +3813,6 @@ public abstract class BaseTest {
             ColumnDto.builder()
                     .id(COLUMN_3_2_ID)
                     .tableId(TABLE_3_ID)
-                    .table(TABLE_3_DTO)
                     .databaseId(DATABASE_1_ID)
                     .columnType(ColumnTypeDto.INT)
                     .name("linie")
@@ -3773,7 +3824,6 @@ public abstract class BaseTest {
             ColumnDto.builder()
                     .id(COLUMN_3_3_ID)
                     .tableId(TABLE_3_ID)
-                    .table(TABLE_3_DTO)
                     .databaseId(DATABASE_1_ID)
                     .columnType(ColumnTypeDto.INT)
                     .name("richtung")
@@ -3785,7 +3835,6 @@ public abstract class BaseTest {
             ColumnDto.builder()
                     .id(COLUMN_3_4_ID)
                     .tableId(TABLE_3_ID)
-                    .table(TABLE_3_DTO)
                     .databaseId(DATABASE_1_ID)
                     .columnType(ColumnTypeDto.DATE)
                     .name("betriebsdatum")
@@ -3797,7 +3846,6 @@ public abstract class BaseTest {
             ColumnDto.builder()
                     .id(COLUMN_3_5_ID)
                     .tableId(TABLE_3_ID)
-                    .table(TABLE_3_DTO)
                     .databaseId(DATABASE_1_ID)
                     .columnType(ColumnTypeDto.INT)
                     .name("fahrzeug")
@@ -3809,7 +3857,6 @@ public abstract class BaseTest {
             ColumnDto.builder()
                     .id(COLUMN_3_6_ID)
                     .tableId(TABLE_3_ID)
-                    .table(TABLE_3_DTO)
                     .databaseId(DATABASE_1_ID)
                     .columnType(ColumnTypeDto.INT)
                     .name("kurs")
@@ -3821,7 +3868,6 @@ public abstract class BaseTest {
             ColumnDto.builder()
                     .id(COLUMN_3_7_ID)
                     .tableId(TABLE_3_ID)
-                    .table(TABLE_3_DTO)
                     .databaseId(DATABASE_1_ID)
                     .columnType(ColumnTypeDto.INT)
                     .name("seq_von")
@@ -3833,7 +3879,6 @@ public abstract class BaseTest {
             ColumnDto.builder()
                     .id(COLUMN_3_8_ID)
                     .tableId(TABLE_3_ID)
-                    .table(TABLE_3_DTO)
                     .databaseId(DATABASE_1_ID)
                     .columnType(ColumnTypeDto.INT)
                     .name("halt_diva_von")
@@ -3845,7 +3890,6 @@ public abstract class BaseTest {
             ColumnDto.builder()
                     .id(COLUMN_3_9_ID)
                     .tableId(TABLE_3_ID)
-                    .table(TABLE_3_DTO)
                     .databaseId(DATABASE_1_ID)
                     .columnType(ColumnTypeDto.INT)
                     .name("halt_punkt_diva_von")
@@ -3857,7 +3901,6 @@ public abstract class BaseTest {
             ColumnDto.builder()
                     .id(COLUMN_3_10_ID)
                     .tableId(TABLE_3_ID)
-                    .table(TABLE_3_DTO)
                     .databaseId(DATABASE_1_ID)
                     .columnType(ColumnTypeDto.INT)
                     .name("halt_kurz_von1")
@@ -3869,7 +3912,6 @@ public abstract class BaseTest {
             ColumnDto.builder()
                     .id(COLUMN_3_11_ID)
                     .tableId(TABLE_3_ID)
-                    .table(TABLE_3_DTO)
                     .databaseId(DATABASE_1_ID)
                     .columnType(ColumnTypeDto.DATE)
                     .name("datum_von")
@@ -3881,7 +3923,6 @@ public abstract class BaseTest {
             ColumnDto.builder()
                     .id(COLUMN_3_12_ID)
                     .tableId(TABLE_3_ID)
-                    .table(TABLE_3_DTO)
                     .databaseId(DATABASE_1_ID)
                     .columnType(ColumnTypeDto.INT)
                     .name("soll_an_von")
@@ -3893,7 +3934,6 @@ public abstract class BaseTest {
             ColumnDto.builder()
                     .id(COLUMN_3_13_ID)
                     .tableId(TABLE_3_ID)
-                    .table(TABLE_3_DTO)
                     .databaseId(DATABASE_1_ID)
                     .columnType(ColumnTypeDto.INT)
                     .name("ist_an_von")
@@ -3905,7 +3945,6 @@ public abstract class BaseTest {
             ColumnDto.builder()
                     .id(COLUMN_3_14_ID)
                     .tableId(TABLE_3_ID)
-                    .table(TABLE_3_DTO)
                     .databaseId(DATABASE_1_ID)
                     .columnType(ColumnTypeDto.INT)
                     .name("soll_ab_von")
@@ -3917,7 +3956,6 @@ public abstract class BaseTest {
             ColumnDto.builder()
                     .id(COLUMN_3_15_ID)
                     .tableId(TABLE_3_ID)
-                    .table(TABLE_3_DTO)
                     .databaseId(DATABASE_1_ID)
                     .columnType(ColumnTypeDto.INT)
                     .name("ist_ab_von")
@@ -3929,7 +3967,6 @@ public abstract class BaseTest {
             ColumnDto.builder()
                     .id(COLUMN_3_16_ID)
                     .tableId(TABLE_3_ID)
-                    .table(TABLE_3_DTO)
                     .databaseId(DATABASE_1_ID)
                     .columnType(ColumnTypeDto.INT)
                     .name("seq_nach")
@@ -3941,7 +3978,6 @@ public abstract class BaseTest {
             ColumnDto.builder()
                     .id(COLUMN_3_17_ID)
                     .tableId(TABLE_3_ID)
-                    .table(TABLE_3_DTO)
                     .databaseId(DATABASE_1_ID)
                     .columnType(ColumnTypeDto.INT)
                     .name("halt_diva_nach")
@@ -3953,7 +3989,6 @@ public abstract class BaseTest {
             ColumnDto.builder()
                     .id(COLUMN_3_18_ID)
                     .tableId(TABLE_3_ID)
-                    .table(TABLE_3_DTO)
                     .databaseId(DATABASE_1_ID)
                     .columnType(ColumnTypeDto.INT)
                     .name("halt_punkt_diva_nach")
@@ -3965,7 +4000,6 @@ public abstract class BaseTest {
             ColumnDto.builder()
                     .id(COLUMN_3_19_ID)
                     .tableId(TABLE_3_ID)
-                    .table(TABLE_3_DTO)
                     .databaseId(DATABASE_1_ID)
                     .columnType(ColumnTypeDto.INT)
                     .name("halt_kurz_nach1")
@@ -3977,7 +4011,6 @@ public abstract class BaseTest {
             ColumnDto.builder()
                     .id(COLUMN_3_20_ID)
                     .tableId(TABLE_3_ID)
-                    .table(TABLE_3_DTO)
                     .databaseId(DATABASE_1_ID)
                     .columnType(ColumnTypeDto.DATE)
                     .name("datum_nach")
@@ -3989,7 +4022,6 @@ public abstract class BaseTest {
             ColumnDto.builder()
                     .id(COLUMN_3_21_ID)
                     .tableId(TABLE_3_ID)
-                    .table(TABLE_3_DTO)
                     .databaseId(DATABASE_1_ID)
                     .columnType(ColumnTypeDto.INT)
                     .name("soll_an_nach")
@@ -4001,7 +4033,6 @@ public abstract class BaseTest {
             ColumnDto.builder()
                     .id(COLUMN_3_22_ID)
                     .tableId(TABLE_3_ID)
-                    .table(TABLE_3_DTO)
                     .databaseId(DATABASE_1_ID)
                     .columnType(ColumnTypeDto.INT)
                     .name("ist_an_nach1")
@@ -4013,7 +4044,6 @@ public abstract class BaseTest {
             ColumnDto.builder()
                     .id(COLUMN_3_23_ID)
                     .tableId(TABLE_3_ID)
-                    .table(TABLE_3_DTO)
                     .databaseId(DATABASE_1_ID)
                     .columnType(ColumnTypeDto.INT)
                     .name("soll_ab_nach")
@@ -4025,7 +4055,6 @@ public abstract class BaseTest {
             ColumnDto.builder()
                     .id(COLUMN_3_24_ID)
                     .tableId(TABLE_3_ID)
-                    .table(TABLE_3_DTO)
                     .databaseId(DATABASE_1_ID)
                     .columnType(ColumnTypeDto.INT)
                     .name("ist_ab_nach")
@@ -4037,7 +4066,6 @@ public abstract class BaseTest {
             ColumnDto.builder()
                     .id(COLUMN_3_25_ID)
                     .tableId(TABLE_3_ID)
-                    .table(TABLE_3_DTO)
                     .databaseId(DATABASE_1_ID)
                     .columnType(ColumnTypeDto.INT)
                     .name("fahrt_id")
@@ -4049,7 +4077,6 @@ public abstract class BaseTest {
             ColumnDto.builder()
                     .id(COLUMN_3_26_ID)
                     .tableId(TABLE_3_ID)
-                    .table(TABLE_3_DTO)
                     .databaseId(DATABASE_1_ID)
                     .columnType(ColumnTypeDto.INT)
                     .name("fahrweg_id")
@@ -4061,7 +4088,6 @@ public abstract class BaseTest {
             ColumnDto.builder()
                     .id(COLUMN_3_27_ID)
                     .tableId(TABLE_3_ID)
-                    .table(TABLE_3_DTO)
                     .databaseId(DATABASE_1_ID)
                     .columnType(ColumnTypeDto.INT)
                     .name("fw_no")
@@ -4073,7 +4099,6 @@ public abstract class BaseTest {
             ColumnDto.builder()
                     .id(COLUMN_3_28_ID)
                     .tableId(TABLE_3_ID)
-                    .table(TABLE_3_DTO)
                     .databaseId(DATABASE_1_ID)
                     .columnType(ColumnTypeDto.INT)
                     .name("fw_typ")
@@ -4085,7 +4110,6 @@ public abstract class BaseTest {
             ColumnDto.builder()
                     .id(COLUMN_3_29_ID)
                     .tableId(TABLE_3_ID)
-                    .table(TABLE_3_DTO)
                     .databaseId(DATABASE_1_ID)
                     .columnType(ColumnTypeDto.INT)
                     .name("fw_kurz")
@@ -4097,7 +4121,6 @@ public abstract class BaseTest {
             ColumnDto.builder()
                     .id(COLUMN_3_30_ID)
                     .tableId(TABLE_3_ID)
-                    .table(TABLE_3_DTO)
                     .databaseId(DATABASE_1_ID)
                     .columnType(ColumnTypeDto.INT)
                     .name("fw_lang")
@@ -4109,7 +4132,6 @@ public abstract class BaseTest {
             ColumnDto.builder()
                     .id(COLUMN_3_31_ID)
                     .tableId(TABLE_3_ID)
-                    .table(TABLE_3_DTO)
                     .databaseId(DATABASE_1_ID)
                     .columnType(ColumnTypeDto.INT)
                     .name("umlauf_von")
@@ -4121,7 +4143,6 @@ public abstract class BaseTest {
             ColumnDto.builder()
                     .id(COLUMN_3_32_ID)
                     .tableId(TABLE_3_ID)
-                    .table(TABLE_3_DTO)
                     .databaseId(DATABASE_1_ID)
                     .columnType(ColumnTypeDto.INT)
                     .name("halt_id_von")
@@ -4133,7 +4154,6 @@ public abstract class BaseTest {
             ColumnDto.builder()
                     .id(COLUMN_3_33_ID)
                     .tableId(TABLE_3_ID)
-                    .table(TABLE_3_DTO)
                     .databaseId(DATABASE_1_ID)
                     .columnType(ColumnTypeDto.INT)
                     .name("halt_id_nach")
@@ -4145,7 +4165,6 @@ public abstract class BaseTest {
             ColumnDto.builder()
                     .id(COLUMN_3_34_ID)
                     .tableId(TABLE_3_ID)
-                    .table(TABLE_3_DTO)
                     .databaseId(DATABASE_1_ID)
                     .columnType(ColumnTypeDto.INT)
                     .name("halt_punkt_id_von")
@@ -4157,7 +4176,6 @@ public abstract class BaseTest {
             ColumnDto.builder()
                     .id(COLUMN_3_35_ID)
                     .tableId(TABLE_3_ID)
-                    .table(TABLE_3_DTO)
                     .databaseId(DATABASE_1_ID)
                     .columnType(ColumnTypeDto.INT)
                     .name("halt_punkt_id_nach")
@@ -4410,7 +4428,6 @@ public abstract class BaseTest {
                     .id(COLUMN_5_1_ID)
                     .ordinalPosition(0)
                     .tableId(TABLE_5_ID)
-                    .table(TABLE_5_DTO)
                     .name("id")
                     .internalName("id")
                     .columnType(ColumnTypeDto.BIGINT)
@@ -4420,7 +4437,6 @@ public abstract class BaseTest {
                     .id(COLUMN_5_2_ID)
                     .ordinalPosition(1)
                     .tableId(TABLE_5_ID)
-                    .table(TABLE_5_DTO)
                     .name("Animal Name")
                     .internalName("animal_name")
                     .columnType(ColumnTypeDto.VARCHAR)
@@ -4430,7 +4446,6 @@ public abstract class BaseTest {
                     .id(COLUMN_5_3_ID)
                     .ordinalPosition(2)
                     .tableId(TABLE_5_ID)
-                    .table(TABLE_5_DTO)
                     .name("Hair")
                     .internalName("hair")
                     .columnType(ColumnTypeDto.BOOL)
@@ -4440,7 +4455,6 @@ public abstract class BaseTest {
                     .id(COLUMN_5_4_ID)
                     .ordinalPosition(3)
                     .tableId(TABLE_5_ID)
-                    .table(TABLE_5_DTO)
                     .name("Feathers")
                     .internalName("feathers")
                     .columnType(ColumnTypeDto.BOOL)
@@ -4450,7 +4464,6 @@ public abstract class BaseTest {
                     .id(COLUMN_5_5_ID)
                     .ordinalPosition(4)
                     .tableId(TABLE_5_ID)
-                    .table(TABLE_5_DTO)
                     .name("Bread")
                     .internalName("bread")
                     .columnType(ColumnTypeDto.BOOL)
@@ -4460,7 +4473,6 @@ public abstract class BaseTest {
                     .id(COLUMN_5_6_ID)
                     .ordinalPosition(5)
                     .tableId(TABLE_5_ID)
-                    .table(TABLE_5_DTO)
                     .name("Eggs")
                     .internalName("eggs")
                     .columnType(ColumnTypeDto.BOOL)
@@ -4470,7 +4482,6 @@ public abstract class BaseTest {
                     .id(COLUMN_5_7_ID)
                     .ordinalPosition(6)
                     .tableId(TABLE_5_ID)
-                    .table(TABLE_5_DTO)
                     .name("Milk")
                     .internalName("milk")
                     .columnType(ColumnTypeDto.BOOL)
@@ -4480,7 +4491,6 @@ public abstract class BaseTest {
                     .id(COLUMN_5_8_ID)
                     .ordinalPosition(7)
                     .tableId(TABLE_5_ID)
-                    .table(TABLE_5_DTO)
                     .name("Water")
                     .internalName("water")
                     .columnType(ColumnTypeDto.BOOL)
@@ -4490,7 +4500,6 @@ public abstract class BaseTest {
                     .id(COLUMN_5_9_ID)
                     .ordinalPosition(8)
                     .tableId(TABLE_5_ID)
-                    .table(TABLE_5_DTO)
                     .name("Airborne")
                     .internalName("airborne")
                     .columnType(ColumnTypeDto.BOOL)
@@ -4500,7 +4509,6 @@ public abstract class BaseTest {
                     .id(COLUMN_5_10_ID)
                     .ordinalPosition(9)
                     .tableId(TABLE_5_ID)
-                    .table(TABLE_5_DTO)
                     .name("Waterborne")
                     .internalName("waterborne")
                     .columnType(ColumnTypeDto.BOOL)
@@ -4510,7 +4518,6 @@ public abstract class BaseTest {
                     .id(COLUMN_5_11_ID)
                     .ordinalPosition(10)
                     .tableId(TABLE_5_ID)
-                    .table(TABLE_5_DTO)
                     .name("Aquantic")
                     .internalName("aquantic")
                     .columnType(ColumnTypeDto.BOOL)
@@ -4520,7 +4527,6 @@ public abstract class BaseTest {
                     .id(COLUMN_5_12_ID)
                     .ordinalPosition(11)
                     .tableId(TABLE_5_ID)
-                    .table(TABLE_5_DTO)
                     .name("Predator")
                     .internalName("predator")
                     .columnType(ColumnTypeDto.BOOL)
@@ -4530,7 +4536,6 @@ public abstract class BaseTest {
                     .id(COLUMN_5_13_ID)
                     .ordinalPosition(12)
                     .tableId(TABLE_5_ID)
-                    .table(TABLE_5_DTO)
                     .name("Backbone")
                     .internalName("backbone")
                     .columnType(ColumnTypeDto.BOOL)
@@ -4540,7 +4545,6 @@ public abstract class BaseTest {
                     .id(COLUMN_5_14_ID)
                     .ordinalPosition(13)
                     .tableId(TABLE_5_ID)
-                    .table(TABLE_5_DTO)
                     .name("Breathes")
                     .internalName("breathes")
                     .columnType(ColumnTypeDto.BOOL)
@@ -4550,7 +4554,6 @@ public abstract class BaseTest {
                     .id(COLUMN_5_15_ID)
                     .ordinalPosition(14)
                     .tableId(TABLE_5_ID)
-                    .table(TABLE_5_DTO)
                     .name("Venomous")
                     .internalName("venomous")
                     .columnType(ColumnTypeDto.BOOL)
@@ -4560,7 +4563,6 @@ public abstract class BaseTest {
                     .id(COLUMN_5_16_ID)
                     .ordinalPosition(15)
                     .tableId(TABLE_5_ID)
-                    .table(TABLE_5_DTO)
                     .name("Fin")
                     .internalName("fin")
                     .columnType(ColumnTypeDto.BOOL)
@@ -4570,7 +4572,6 @@ public abstract class BaseTest {
                     .id(COLUMN_5_17_ID)
                     .ordinalPosition(16)
                     .tableId(TABLE_5_ID)
-                    .table(TABLE_5_DTO)
                     .name("Legs")
                     .internalName("legs")
                     .columnType(ColumnTypeDto.INT)
@@ -4580,7 +4581,6 @@ public abstract class BaseTest {
                     .id(COLUMN_5_18_ID)
                     .ordinalPosition(17)
                     .tableId(TABLE_5_ID)
-                    .table(TABLE_5_DTO)
                     .name("Tail")
                     .internalName("tail")
                     .columnType(ColumnTypeDto.DECIMAL)
@@ -4590,7 +4590,6 @@ public abstract class BaseTest {
                     .id(COLUMN_5_19_ID)
                     .ordinalPosition(18)
                     .tableId(TABLE_5_ID)
-                    .table(TABLE_5_DTO)
                     .name("Domestic")
                     .internalName("domestic")
                     .columnType(ColumnTypeDto.BOOL)
@@ -4600,7 +4599,6 @@ public abstract class BaseTest {
                     .id(COLUMN_5_20_ID)
                     .ordinalPosition(19)
                     .tableId(TABLE_5_ID)
-                    .table(TABLE_5_DTO)
                     .name("Catsize")
                     .internalName("catsize")
                     .columnType(ColumnTypeDto.BOOL)
@@ -4610,7 +4608,6 @@ public abstract class BaseTest {
                     .id(COLUMN_5_21_ID)
                     .ordinalPosition(20)
                     .tableId(TABLE_5_ID)
-                    .table(TABLE_5_DTO)
                     .name("Class Type")
                     .internalName("class_type")
                     .columnType(ColumnTypeDto.DECIMAL)
@@ -4820,7 +4817,6 @@ public abstract class BaseTest {
                     .id(67L)
                     .ordinalPosition(0)
                     .tableId(TABLE_6_ID)
-                    .table(TABLE_6_DTO)
                     .name("id")
                     .internalName("id")
                     .columnType(ColumnTypeDto.BIGINT)
@@ -4830,7 +4826,6 @@ public abstract class BaseTest {
                     .id(68L)
                     .ordinalPosition(1)
                     .tableId(TABLE_6_ID)
-                    .table(TABLE_6_DTO)
                     .name("firstname")
                     .internalName("firstname")
                     .columnType(ColumnTypeDto.VARCHAR)
@@ -4840,7 +4835,6 @@ public abstract class BaseTest {
                     .id(69L)
                     .ordinalPosition(2)
                     .tableId(TABLE_6_ID)
-                    .table(TABLE_6_DTO)
                     .name("lastname")
                     .internalName("lastname")
                     .columnType(ColumnTypeDto.VARCHAR)
@@ -4850,7 +4844,6 @@ public abstract class BaseTest {
                     .id(70L)
                     .ordinalPosition(3)
                     .tableId(TABLE_6_ID)
-                    .table(TABLE_6_DTO)
                     .name("birth")
                     .internalName("birth")
                     .columnType(ColumnTypeDto.YEAR)
@@ -4860,7 +4853,6 @@ public abstract class BaseTest {
                     .id(71L)
                     .ordinalPosition(4)
                     .tableId(TABLE_6_ID)
-                    .table(TABLE_6_DTO)
                     .name("reminder")
                     .internalName("reminder")
                     .columnType(ColumnTypeDto.TIME)
@@ -4870,7 +4862,6 @@ public abstract class BaseTest {
                     .id(72L)
                     .ordinalPosition(5)
                     .tableId(TABLE_6_ID)
-                    .table(TABLE_6_DTO)
                     .name("ref_id")
                     .internalName("ref_id")
                     .columnType(ColumnTypeDto.BIGINT)
@@ -4956,7 +4947,6 @@ public abstract class BaseTest {
                     .id(COLUMN_7_1_ID)
                     .ordinalPosition(0)
                     .tableId(TABLE_7_ID)
-                    .table(TABLE_7_DTO)
                     .name("name_id")
                     .internalName("name_id")
                     .columnType(ColumnTypeDto.BIGINT)
@@ -4966,7 +4956,6 @@ public abstract class BaseTest {
                     .id(COLUMN_7_2_ID)
                     .ordinalPosition(1)
                     .tableId(TABLE_7_ID)
-                    .table(TABLE_7_DTO)
                     .name("zoo_id")
                     .internalName("zoo_id")
                     .columnType(ColumnTypeDto.BIGINT)
@@ -4991,7 +4980,6 @@ public abstract class BaseTest {
                     .databaseId(DATABASE_1_ID)
                     .name("location")
                     .internalName("location")
-                    .ordinalPosition(0)
                     .columnType(ColumnTypeDto.VARCHAR)
                     .size(255L)
                     .isNullAllowed(false)
@@ -5002,7 +4990,6 @@ public abstract class BaseTest {
                     .databaseId(DATABASE_1_ID)
                     .name("lat")
                     .internalName("lat")
-                    .ordinalPosition(1)
                     .columnType(ColumnTypeDto.DECIMAL)
                     .size(10L)
                     .d(0L)
@@ -5014,7 +5001,6 @@ public abstract class BaseTest {
                     .databaseId(DATABASE_1_ID)
                     .name("lng")
                     .internalName("lng")
-                    .ordinalPosition(2)
                     .columnType(ColumnTypeDto.DECIMAL)
                     .size(10L)
                     .d(0L)
@@ -5034,6 +5020,7 @@ public abstract class BaseTest {
             .queryHash(VIEW_1_QUERY_HASH)
             .ownedBy(USER_1_ID)
             .owner(USER_1)
+            .identifiers(new LinkedList<>()) /* IDENTIFIER_3 */
             .columns(null) /* VIEW_1_COLUMNS */
             .build();
 
@@ -5062,7 +5049,6 @@ public abstract class BaseTest {
                     .ordinalPosition(0)
                     .name("location")
                     .internalName("location")
-                    .ordinalPosition(0)
                     .columnType(TableColumnType.VARCHAR)
                     .size(255L)
                     .isNullAllowed(false)
@@ -5073,7 +5059,6 @@ public abstract class BaseTest {
                     .ordinalPosition(1)
                     .name("lat")
                     .internalName("lat")
-                    .ordinalPosition(1)
                     .columnType(TableColumnType.DECIMAL)
                     .size(10L)
                     .d(0L)
@@ -5085,7 +5070,6 @@ public abstract class BaseTest {
                     .ordinalPosition(2)
                     .name("lng")
                     .internalName("lng")
-                    .ordinalPosition(2)
                     .columnType(TableColumnType.DECIMAL)
                     .size(10L)
                     .d(0L)
@@ -5107,7 +5091,6 @@ public abstract class BaseTest {
             .query(VIEW_1_QUERY)
             .queryHash(VIEW_1_QUERY_HASH)
             .columns(VIEW_1_COLUMNS_DTO)
-            .database(null)
             .build();
 
     public final static PrivilegedViewDto VIEW_1_PRIVILEGED_DTO = PrivilegedViewDto.builder()
@@ -5158,26 +5141,29 @@ public abstract class BaseTest {
     public final static List<ViewColumnDto> VIEW_2_COLUMNS_DTO = List.of(
             ViewColumnDto.builder()
                     .id(4L)
-                    .name("date")
+                    .databaseId(DATABASE_1_ID)
+                    .ordinalPosition(0)
+                    .name("Date")
                     .internalName("date")
-                    .ordinalPosition(1)
                     .columnType(ColumnTypeDto.DATE)
                     .isNullAllowed(true)
                     .build(),
             ViewColumnDto.builder()
                     .id(5L)
+                    .databaseId(DATABASE_1_ID)
+                    .ordinalPosition(1)
                     .name("loc")
                     .internalName("loc")
-                    .ordinalPosition(2)
                     .columnType(ColumnTypeDto.VARCHAR)
                     .size(255L)
                     .isNullAllowed(true)
                     .build(),
             ViewColumnDto.builder()
                     .id(6L)
-                    .name("mintemp")
-                    .internalName("mintemp")
-                    .ordinalPosition(3)
+                    .databaseId(DATABASE_1_ID)
+                    .ordinalPosition(2)
+                    .name("Rainfall")
+                    .internalName("rainfall")
                     .columnType(ColumnTypeDto.DECIMAL)
                     .size(10L)
                     .d(0L)
@@ -5185,9 +5171,10 @@ public abstract class BaseTest {
                     .build(),
             ViewColumnDto.builder()
                     .id(7L)
-                    .name("rainfall")
-                    .internalName("rainfall")
-                    .ordinalPosition(4)
+                    .databaseId(DATABASE_1_ID)
+                    .ordinalPosition(3)
+                    .name("MinTemp")
+                    .internalName("mintemp")
                     .columnType(ColumnTypeDto.DECIMAL)
                     .size(10L)
                     .d(0L)
@@ -5313,9 +5300,10 @@ public abstract class BaseTest {
     public final static List<ViewColumnDto> VIEW_3_COLUMNS_DTO = List.of(
             ViewColumnDto.builder()
                     .id(8L)
+                    .databaseId(DATABASE_1_ID)
+                    .ordinalPosition(0)
                     .name("MinTemp")
                     .internalName("mintemp")
-                    .ordinalPosition(0)
                     .columnType(ColumnTypeDto.DECIMAL)
                     .size(10L)
                     .d(0L)
@@ -5323,30 +5311,31 @@ public abstract class BaseTest {
                     .build(),
             ViewColumnDto.builder()
                     .id(9L)
+                    .databaseId(DATABASE_1_ID)
+                    .ordinalPosition(1)
                     .name("Rainfall")
                     .internalName("rainfall")
-                    .ordinalPosition(1)
                     .columnType(ColumnTypeDto.DECIMAL)
                     .size(10L)
                     .d(0L)
-                    .concept(CONCEPT_1_DTO)
-                    .unit(UNIT_1_DTO)
                     .isNullAllowed(true)
                     .build(),
             ViewColumnDto.builder()
                     .id(10L)
+                    .databaseId(DATABASE_1_ID)
+                    .ordinalPosition(2)
                     .name("Location")
                     .internalName("location")
-                    .ordinalPosition(2)
                     .columnType(ColumnTypeDto.VARCHAR)
                     .size(255L)
                     .isNullAllowed(true)
                     .build(),
             ViewColumnDto.builder()
                     .id(11L)
+                    .databaseId(DATABASE_1_ID)
+                    .ordinalPosition(3)
                     .name("Date")
                     .internalName("date")
-                    .ordinalPosition(3)
                     .columnType(ColumnTypeDto.DATE)
                     .isNullAllowed(true)
                     .build()
@@ -5470,6 +5459,7 @@ public abstract class BaseTest {
     public final static List<ViewColumnDto> VIEW_4_COLUMNS_DTO = List.of(
             ViewColumnDto.builder()
                     .id(12L)
+                    .databaseId(DATABASE_2_ID)
                     .ordinalPosition(0)
                     .name("Animal Name")
                     .internalName("animal_name")
@@ -5478,6 +5468,7 @@ public abstract class BaseTest {
                     .build(),
             ViewColumnDto.builder()
                     .id(13L)
+                    .databaseId(DATABASE_2_ID)
                     .ordinalPosition(1)
                     .name("Hair")
                     .internalName("hair")
@@ -5486,6 +5477,7 @@ public abstract class BaseTest {
                     .build(),
             ViewColumnDto.builder()
                     .id(14L)
+                    .databaseId(DATABASE_2_ID)
                     .ordinalPosition(2)
                     .name("Feathers")
                     .internalName("feathers")
@@ -5494,6 +5486,7 @@ public abstract class BaseTest {
                     .build(),
             ViewColumnDto.builder()
                     .id(15L)
+                    .databaseId(DATABASE_2_ID)
                     .ordinalPosition(3)
                     .name("Eggs")
                     .internalName("eggs")
@@ -5502,6 +5495,7 @@ public abstract class BaseTest {
                     .build(),
             ViewColumnDto.builder()
                     .id(16L)
+                    .databaseId(DATABASE_2_ID)
                     .ordinalPosition(4)
                     .name("Milk")
                     .internalName("milk")
@@ -5510,6 +5504,7 @@ public abstract class BaseTest {
                     .build(),
             ViewColumnDto.builder()
                     .id(17L)
+                    .databaseId(DATABASE_2_ID)
                     .ordinalPosition(5)
                     .name("Airborne")
                     .internalName("airborne")
@@ -5518,6 +5513,7 @@ public abstract class BaseTest {
                     .build(),
             ViewColumnDto.builder()
                     .id(18L)
+                    .databaseId(DATABASE_2_ID)
                     .ordinalPosition(6)
                     .name("Aquantic")
                     .internalName("aquantic")
@@ -5526,6 +5522,7 @@ public abstract class BaseTest {
                     .build(),
             ViewColumnDto.builder()
                     .id(19L)
+                    .databaseId(DATABASE_2_ID)
                     .ordinalPosition(7)
                     .name("Predator")
                     .internalName("predator")
@@ -5534,6 +5531,7 @@ public abstract class BaseTest {
                     .build(),
             ViewColumnDto.builder()
                     .id(20L)
+                    .databaseId(DATABASE_2_ID)
                     .ordinalPosition(8)
                     .name("Backbone")
                     .internalName("backbone")
@@ -5542,6 +5540,7 @@ public abstract class BaseTest {
                     .build(),
             ViewColumnDto.builder()
                     .id(21L)
+                    .databaseId(DATABASE_2_ID)
                     .ordinalPosition(9)
                     .name("Breathes")
                     .internalName("breathes")
@@ -5550,6 +5549,7 @@ public abstract class BaseTest {
                     .build(),
             ViewColumnDto.builder()
                     .id(22L)
+                    .databaseId(DATABASE_2_ID)
                     .ordinalPosition(10)
                     .name("Venomous")
                     .internalName("venomous")
@@ -5558,6 +5558,7 @@ public abstract class BaseTest {
                     .build(),
             ViewColumnDto.builder()
                     .id(23L)
+                    .databaseId(DATABASE_2_ID)
                     .ordinalPosition(11)
                     .name("Fin")
                     .internalName("fin")
@@ -5566,6 +5567,7 @@ public abstract class BaseTest {
                     .build(),
             ViewColumnDto.builder()
                     .id(24L)
+                    .databaseId(DATABASE_2_ID)
                     .ordinalPosition(12)
                     .name("Legs")
                     .internalName("legs")
@@ -5574,6 +5576,7 @@ public abstract class BaseTest {
                     .build(),
             ViewColumnDto.builder()
                     .id(25L)
+                    .databaseId(DATABASE_2_ID)
                     .ordinalPosition(13)
                     .name("Tail")
                     .internalName("tail")
@@ -5582,6 +5585,7 @@ public abstract class BaseTest {
                     .build(),
             ViewColumnDto.builder()
                     .id(26L)
+                    .databaseId(DATABASE_2_ID)
                     .ordinalPosition(14)
                     .name("Domestic")
                     .internalName("domestic")
@@ -5590,6 +5594,7 @@ public abstract class BaseTest {
                     .build(),
             ViewColumnDto.builder()
                     .id(27L)
+                    .databaseId(DATABASE_2_ID)
                     .ordinalPosition(15)
                     .name("Catsize")
                     .internalName("catsize")
@@ -5598,6 +5603,7 @@ public abstract class BaseTest {
                     .build(),
             ViewColumnDto.builder()
                     .id(28L)
+                    .databaseId(DATABASE_2_ID)
                     .ordinalPosition(16)
                     .name("Class Type")
                     .internalName("class_type")
@@ -5860,7 +5866,6 @@ public abstract class BaseTest {
                     .ordinalPosition(0)
                     .name("location")
                     .internalName("location")
-                    .ordinalPosition(0)
                     .columnType(TableColumnType.VARCHAR)
                     .size(255L)
                     .isNullAllowed(false)
@@ -5871,7 +5876,6 @@ public abstract class BaseTest {
                     .ordinalPosition(1)
                     .name("lat")
                     .internalName("lat")
-                    .ordinalPosition(1)
                     .columnType(TableColumnType.DECIMAL)
                     .size(10L)
                     .d(0L)
@@ -5883,7 +5887,6 @@ public abstract class BaseTest {
                     .ordinalPosition(2)
                     .name("lng")
                     .internalName("lng")
-                    .ordinalPosition(2)
                     .columnType(TableColumnType.DECIMAL)
                     .size(10L)
                     .d(0L)
@@ -5894,20 +5897,20 @@ public abstract class BaseTest {
     public final static List<ViewColumnDto> VIEW_5_COLUMNS_DTO = List.of(
             ViewColumnDto.builder()
                     .id(29L)
+                    .databaseId(DATABASE_3_ID)
                     .ordinalPosition(0)
                     .name("location")
                     .internalName("location")
-                    .ordinalPosition(0)
                     .columnType(ColumnTypeDto.VARCHAR)
                     .size(255L)
                     .isNullAllowed(false)
                     .build(),
             ViewColumnDto.builder()
                     .id(30L)
+                    .databaseId(DATABASE_3_ID)
                     .ordinalPosition(1)
                     .name("lat")
                     .internalName("lat")
-                    .ordinalPosition(1)
                     .columnType(ColumnTypeDto.DECIMAL)
                     .size(10L)
                     .d(0L)
@@ -5915,10 +5918,10 @@ public abstract class BaseTest {
                     .build(),
             ViewColumnDto.builder()
                     .id(31L)
+                    .databaseId(DATABASE_3_ID)
                     .ordinalPosition(2)
                     .name("lng")
                     .internalName("lng")
-                    .ordinalPosition(2)
                     .columnType(ColumnTypeDto.DECIMAL)
                     .size(10L)
                     .d(0L)
@@ -6009,6 +6012,8 @@ public abstract class BaseTest {
     public final static String CREATOR_3_ORCID = "00000-00000-00000";
     public final static String CREATOR_3_AFFIL = "TU Graz";
     public final static String CREATOR_3_AFFIL_ROR = "https://ror.org/04wn28048";
+    public final static AffiliationIdentifierSchemeType CREATOR_3_AFFIL_SCHEME_TYPE = AffiliationIdentifierSchemeType.ROR;
+    public final static AffiliationIdentifierSchemeTypeDto CREATOR_3_AFFIL_SCHEME_TYPE_DTO = AffiliationIdentifierSchemeTypeDto.ROR;
     public final static String CREATOR_3_AFFIL_URI = "https://ror.org/";
     public final static String CREATOR_3_FIRSTNAME = "Max";
     public final static String CREATOR_3_LASTNAME = "Mustermann";
@@ -6337,7 +6342,7 @@ public abstract class BaseTest {
             .resultNumber(IDENTIFIER_1_RESULT_NUMBER)
             .publisher(IDENTIFIER_1_PUBLISHER)
             .type(IDENTIFIER_1_TYPE_DTO)
-            .owner(USER_1_DTO)
+            .owner(USER_1_BRIEF_DTO)
             .licenses(new LinkedList<>(List.of(LICENSE_1_DTO)))
             .creators(new LinkedList<>(List.of(IDENTIFIER_1_CREATOR_1_DTO)))
             .funders(new LinkedList<>(List.of(IDENTIFIER_1_FUNDER_1_DTO)))
@@ -6523,6 +6528,9 @@ public abstract class BaseTest {
             .nameIdentifier(CREATOR_1_ORCID)
             .nameIdentifierScheme(NameIdentifierSchemeTypeDto.ORCID)
             .affiliation(CREATOR_1_AFFIL)
+            .affiliationIdentifier(CREATOR_1_AFFIL_ROR)
+            .affiliationIdentifierScheme(CREATOR_1_AFFIL_TYPE_DTO)
+            .affiliationIdentifierSchemeUri(CREATOR_1_AFFIL_URI)
             .build();
 
     public final static CreatorSaveDto IDENTIFIER_5_CREATOR_1_CREATE_DTO = CreatorSaveDto.builder()
@@ -6626,7 +6634,8 @@ public abstract class BaseTest {
             .resultNumber(IDENTIFIER_5_RESULT_NUMBER)
             .publisher(IDENTIFIER_5_PUBLISHER)
             .type(IDENTIFIER_5_TYPE_DTO)
-            .owner(USER_2_DTO)
+            .owner(USER_2_BRIEF_DTO)
+            .status(IDENTIFIER_5_STATUS_TYPE_DTO)
             .creators(new LinkedList<>(List.of(IDENTIFIER_5_CREATOR_1_DTO, IDENTIFIER_5_CREATOR_2_DTO)))
             .build();
 
@@ -6780,6 +6789,7 @@ public abstract class BaseTest {
             .affiliation(CREATOR_1_AFFIL)
             .affiliationIdentifier(CREATOR_1_AFFIL_ROR)
             .affiliationIdentifierScheme(CREATOR_1_AFFIL_TYPE)
+            .affiliationIdentifierSchemeUri(CREATOR_1_AFFIL_URI)
             .build();
 
     public final static CreatorDto IDENTIFIER_6_CREATOR_1_DTO = CreatorDto.builder()
@@ -6850,8 +6860,8 @@ public abstract class BaseTest {
             .nameIdentifierScheme(NameIdentifierSchemeType.ORCID)
             .affiliation(CREATOR_3_AFFIL)
             .affiliationIdentifier(CREATOR_3_AFFIL_ROR)
-            .affiliationIdentifierScheme(AffiliationIdentifierSchemeType.ROR)
-            .affiliationIdentifierSchemeUri("https://ror.org/")
+            .affiliationIdentifierScheme(CREATOR_3_AFFIL_SCHEME_TYPE)
+            .affiliationIdentifierSchemeUri(CREATOR_3_AFFIL_URI)
             .build();
 
     public final static CreatorDto IDENTIFIER_6_CREATOR_3_DTO = CreatorDto.builder()
@@ -6863,6 +6873,8 @@ public abstract class BaseTest {
             .nameIdentifierScheme(NameIdentifierSchemeTypeDto.ORCID)
             .affiliation(CREATOR_3_AFFIL)
             .affiliationIdentifier(CREATOR_3_AFFIL_ROR)
+            .affiliationIdentifierScheme(CREATOR_3_AFFIL_SCHEME_TYPE_DTO)
+            .affiliationIdentifierSchemeUri(CREATOR_3_AFFIL_URI)
             .build();
 
     public final static Identifier IDENTIFIER_6 = Identifier.builder()
@@ -6909,7 +6921,7 @@ public abstract class BaseTest {
             .resultNumber(IDENTIFIER_6_RESULT_NUMBER)
             .publisher(IDENTIFIER_6_PUBLISHER)
             .type(IDENTIFIER_6_TYPE_DTO)
-            .owner(USER_3_DTO)
+            .owner(USER_3_BRIEF_DTO)
             .licenses(new LinkedList<>(List.of(LICENSE_1_DTO)))
             .creators(new LinkedList<>(List.of(IDENTIFIER_6_CREATOR_1_DTO, IDENTIFIER_6_CREATOR_2_DTO, IDENTIFIER_6_CREATOR_3_DTO)))
             .status(IDENTIFIER_6_STATUS_TYPE_DTO)
@@ -7015,10 +7027,11 @@ public abstract class BaseTest {
             .resultNumber(IDENTIFIER_7_RESULT_NUMBER)
             .publisher(IDENTIFIER_7_PUBLISHER)
             .type(IDENTIFIER_7_TYPE_DTO)
-            .owner(USER_4_DTO)
+            .owner(USER_4_BRIEF_DTO)
+            .relatedIdentifiers(new LinkedList<>())
             .licenses(new LinkedList<>())
             .funders(new LinkedList<>())
-            .creators(new LinkedList<>())
+            .creators(new LinkedList<>(List.of(IDENTIFIER_7_CREATOR_1_DTO)))
             .status(IDENTIFIER_7_STATUS_TYPE_DTO)
             .build();
 
@@ -7128,7 +7141,7 @@ public abstract class BaseTest {
             .resultNumber(IDENTIFIER_2_RESULT_NUMBER)
             .publisher(IDENTIFIER_2_PUBLISHER)
             .type(IDENTIFIER_2_TYPE_DTO)
-            .owner(USER_1_DTO)
+            .owner(USER_1_BRIEF_DTO)
             .licenses(new LinkedList<>(List.of(LICENSE_1_DTO)))
             .creators(new LinkedList<>())
             .status(IDENTIFIER_2_STATUS_TYPE_DTO)
@@ -7229,7 +7242,7 @@ public abstract class BaseTest {
             .resultNumber(IDENTIFIER_3_RESULT_NUMBER)
             .publisher(IDENTIFIER_3_PUBLISHER)
             .type(IDENTIFIER_3_TYPE_DTO)
-            .owner(USER_1_DTO)
+            .owner(USER_1_BRIEF_DTO)
             .licenses(new LinkedList<>(List.of(LICENSE_1_DTO)))
             .creators(new LinkedList<>())
             .status(IDENTIFIER_3_STATUS_TYPE_DTO)
@@ -7328,7 +7341,7 @@ public abstract class BaseTest {
             .resultNumber(IDENTIFIER_4_RESULT_NUMBER)
             .publisher(IDENTIFIER_4_PUBLISHER)
             .type(IDENTIFIER_4_TYPE_DTO)
-            .owner(USER_1_DTO)
+            .owner(USER_1_BRIEF_DTO)
             .licenses(new LinkedList<>(List.of(LICENSE_1_DTO)))
             .creators(new LinkedList<>())
             .status(IDENTIFIER_4_STATUS_TYPE_DTO)
@@ -7404,6 +7417,14 @@ public abstract class BaseTest {
             .displayEnd(BANNER_MESSAGE_1_END)
             .build();
 
+    public final static BannerMessageDto BANNER_MESSAGE_1_DTO = BannerMessageDto.builder()
+            .id(BANNER_MESSAGE_1_ID)
+            .message(BANNER_MESSAGE_1_MESSAGE)
+            .type(BANNER_MESSAGE_1_TYPE_DTO)
+            .displayStart(BANNER_MESSAGE_1_START)
+            .displayEnd(BANNER_MESSAGE_1_END)
+            .build();
+
     public final static BannerMessageCreateDto BANNER_MESSAGE_1_CREATE_DTO = BannerMessageCreateDto.builder()
             .message(BANNER_MESSAGE_1_MESSAGE)
             .type(BANNER_MESSAGE_1_TYPE_DTO)
diff --git a/lib/python/dbrepo/api/dto.py b/lib/python/dbrepo/api/dto.py
index 5100a7ae4e..c6188098f9 100644
--- a/lib/python/dbrepo/api/dto.py
+++ b/lib/python/dbrepo/api/dto.py
@@ -656,7 +656,7 @@ class ViewBrief(BaseModel):
     owned_by: str
 
 
-class Concept(BaseModel):
+class ConceptBrief(BaseModel):
     id: int
     uri: str
     name: Optional[str] = None
@@ -691,7 +691,7 @@ class TableStatistics(BaseModel):
     columns: dict[str, ColumnStatistic]
 
 
-class Unit(BaseModel):
+class UnitBrief(BaseModel):
     id: int
     uri: str
     name: Optional[str] = None
@@ -886,8 +886,9 @@ class Column(BaseModel):
     name: str
     database_id: int
     table_id: int
+    ord: int
     internal_name: str
-    column_type: ColumnType
+    type: ColumnType
     is_public: bool
     is_null_allowed: bool
     alias: Optional[str] = None
@@ -896,8 +897,8 @@ class Column(BaseModel):
     d: Optional[int] = None
     mean: Optional[float] = None
     median: Optional[float] = None
-    concept: Optional[Concept] = None
-    unit: Optional[Unit] = None
+    concept: Optional[ConceptBrief] = None
+    unit: Optional[UnitBrief] = None
     enums: Optional[List[str]] = field(default_factory=list)
     sets: Optional[List[str]] = field(default_factory=list)
     index_length: Optional[int] = None
@@ -915,7 +916,7 @@ class ViewColumn(BaseModel):
     name: str
     database_id: int
     internal_name: str
-    column_type: ColumnType
+    type: ColumnType
     is_public: bool
     is_null_allowed: bool
     alias: Optional[str] = None
@@ -923,8 +924,8 @@ class ViewColumn(BaseModel):
     d: Optional[int] = None
     mean: Optional[float] = None
     median: Optional[float] = None
-    concept: Optional[Concept] = None
-    unit: Optional[Unit] = None
+    concept: Optional[ConceptBrief] = None
+    unit: Optional[UnitBrief] = None
     index_length: Optional[int] = None
     length: Optional[int] = None
 
-- 
GitLab