From e96d523c7524c8e09cd28e92b61abc2055b0b942 Mon Sep 17 00:00:00 2001
From: Martin Weise <martin.weise@tuwien.ac.at>
Date: Tue, 9 May 2023 17:19:35 +0200
Subject: [PATCH] Updated:

- replace javax with jakarta
- upgrade java 11 -> java 17 as support runs out in 4 months
- upgrade of various libraries to latest
---
 dbrepo-container-service/Dockerfile           |  6 ++-
 dbrepo-container-service/pom.xml              | 27 ++++----------
 .../tuwien/endpoints/ContainerEndpoint.java   |  6 +--
 .../at/tuwien/endpoints/ImageEndpoint.java    |  4 +-
 .../endpoint/ImageEndpointUnitTest.java       |  2 -
 .../service/ImageServiceIntegrationTest.java  |  1 -
 .../tuwien/service/ImageServiceUnitTest.java  |  4 +-
 .../java/at/tuwien/auth/AuthTokenFilter.java  |  8 ++--
 .../at/tuwien/config/WebSecurityConfig.java   | 19 +++++-----
 .../service/impl/ContainerServiceImpl.java    | 10 ++---
 .../tuwien/service/impl/ImageServiceImpl.java |  6 +--
 dbrepo-database-service/Dockerfile            |  6 ++-
 dbrepo-database-service/pom.xml               | 30 ++++++---------
 .../at/tuwien/endpoints/AccessEndpoint.java   |  9 ++---
 .../at/tuwien/endpoints/DatabaseEndpoint.java |  4 +-
 .../at/tuwien/endpoints/LicenseEndpoint.java  |  2 +-
 .../src/main/resources/application-local.yml  |  8 ++--
 .../src/main/resources/application.yml        |  8 ++--
 .../java/at/tuwien/auth/AuthTokenFilter.java  |  8 ++--
 .../at/tuwien/config/ElasticsearchConfig.java | 37 ++++++++++---------
 .../at/tuwien/config/WebSecurityConfig.java   | 17 +++++----
 .../tuwien/service/MessageQueueService.java   |  2 +-
 dbrepo-metadata-db/Dockerfile                 |  5 +--
 .../at/tuwien/api/amqp/ChannelDetailsDto.java |  5 +--
 .../java/at/tuwien/api/amqp/ConsumerDto.java  |  2 +-
 .../at/tuwien/api/amqp/CreateExchangeDto.java |  4 +-
 .../tuwien/api/amqp/CreateVirtualHostDto.java |  2 +-
 .../java/at/tuwien/api/amqp/ExchangeDto.java  |  4 +-
 .../amqp/GrantVirtualHostPermissionsDto.java  |  2 +-
 .../at/tuwien/api/amqp/QueueBriefDto.java     |  2 +-
 .../java/at/tuwien/api/amqp/QueueDto.java     |  4 +-
 .../java/at/tuwien/api/amqp/TupleDto.java     |  2 +-
 .../at/tuwien/api/amqp/UserDetailsDto.java    |  2 +-
 .../at/tuwien/api/auth/CreateUserDto.java     |  6 +--
 .../at/tuwien/api/auth/CredentialDto.java     |  4 +-
 .../at/tuwien/api/auth/JwtResponseDto.java    |  2 +-
 .../at/tuwien/api/auth/LoginRequestDto.java   |  2 +-
 .../at/tuwien/api/auth/RealmAccessDto.java    |  2 +-
 .../at/tuwien/api/auth/SignupRequestDto.java  |  8 ++--
 .../tuwien/api/auth/TokenIntrospectDto.java   |  2 +-
 .../api/container/ContainerBriefDto.java      |  4 +-
 .../api/container/ContainerChangeDto.java     |  2 +-
 .../container/ContainerCreateRequestDto.java  |  2 +-
 .../at/tuwien/api/container/ContainerDto.java |  4 +-
 .../api/container/image/ImageBriefDto.java    |  4 +-
 .../api/container/image/ImageChangeDto.java   |  6 +--
 .../api/container/image/ImageCreateDto.java   |  4 +-
 .../api/container/image/ImageDateDto.java     |  4 +-
 .../tuwien/api/container/image/ImageDto.java  |  4 +-
 .../api/container/image/ImageEnvItemDto.java  |  4 +-
 .../api/database/DatabaseAccessDto.java       |  2 +-
 .../tuwien/api/database/DatabaseBriefDto.java |  4 +-
 .../api/database/DatabaseCreateDto.java       |  4 +-
 .../at/tuwien/api/database/DatabaseDto.java   |  4 +-
 .../api/database/DatabaseGiveAccessDto.java   |  4 +-
 .../api/database/DatabaseModifyAccessDto.java |  2 +-
 .../database/DatabaseModifyVisibilityDto.java |  2 +-
 .../api/database/DatabaseTransferDto.java     |  2 +-
 .../at/tuwien/api/database/LicenseDto.java    |  4 +-
 .../tuwien/api/database/SubjectModifyDto.java |  2 +-
 .../at/tuwien/api/database/ViewBriefDto.java  |  4 +-
 .../at/tuwien/api/database/ViewCreateDto.java |  4 +-
 .../java/at/tuwien/api/database/ViewDto.java  |  4 +-
 .../database/query/ExecuteStatementDto.java   |  2 +-
 .../tuwien/api/database/query/ExportDto.java  |  2 +-
 .../tuwien/api/database/query/ImportDto.java  |  6 +--
 .../api/database/query/QueryBriefDto.java     |  4 +-
 .../tuwien/api/database/query/QueryDto.java   |  4 +-
 .../api/database/query/QueryResultDto.java    |  2 +-
 .../api/database/query/SaveStatementDto.java  |  2 +-
 .../api/database/table/TableBriefDto.java     |  4 +-
 .../api/database/table/TableCreateDto.java    |  4 +-
 .../api/database/table/TableCsvDeleteDto.java |  2 +-
 .../api/database/table/TableCsvDto.java       |  2 +-
 .../table/TableCsvInformationDto.java         |  4 +-
 .../api/database/table/TableCsvUpdateDto.java |  2 +-
 .../tuwien/api/database/table/TableDto.java   |  4 +-
 .../api/database/table/TableHistoryDto.java   |  2 +-
 .../table/columns/ColumnBriefDto.java         |  4 +-
 .../table/columns/ColumnCreateDto.java        |  6 +--
 .../api/database/table/columns/ColumnDto.java |  4 +-
 .../table/columns/concepts/ConceptDto.java    |  4 +-
 .../table/columns/concepts/UnitDto.java       |  4 +-
 .../constraints/foreignKey/ForeignKeyDto.java |  3 --
 .../api/datacite/doi/DataCiteCreateDoi.java   |  4 +-
 .../api/datacite/doi/DataCiteDoiCreator.java  |  2 +-
 .../api/datacite/doi/DataCiteDoiTitle.java    |  2 +-
 .../api/datacite/doi/DataCiteDoiTypes.java    |  2 +-
 .../java/at/tuwien/api/error/ApiErrorDto.java |  2 +-
 .../api/identifier/CreatorBriefDto.java       |  2 +-
 .../api/identifier/CreatorCreateDto.java      |  2 +-
 .../at/tuwien/api/identifier/CreatorDto.java  |  4 +-
 .../api/identifier/IdentifierBriefDto.java    |  4 +-
 .../api/identifier/IdentifierCreateDto.java   |  6 +--
 .../tuwien/api/identifier/IdentifierDto.java  |  4 +-
 .../api/identifier/IdentifierUpdateDto.java   |  6 +--
 .../RelatedIdentifierCreateDto.java           |  2 +-
 .../api/identifier/RelatedIdentifierDto.java  |  2 +-
 .../user/ExchangeUpdatePermissionsDto.java    |  2 +-
 .../at/tuwien/api/user/UserAttributeDto.java  |  2 +-
 .../java/at/tuwien/api/user/UserBriefDto.java |  6 +--
 .../at/tuwien/api/user/UserDetailsDto.java    |  4 +-
 .../main/java/at/tuwien/api/user/UserDto.java |  2 +-
 .../java/at/tuwien/api/user/UserEmailDto.java |  4 +-
 .../at/tuwien/api/user/UserForgotDto.java     |  2 +-
 .../api/user/UserModifyPasswordDto.java       |  2 +-
 .../at/tuwien/api/user/UserPasswordDto.java   |  2 +-
 .../java/at/tuwien/api/user/UserResetDto.java |  2 +-
 .../java/at/tuwien/api/user/UserRolesDto.java |  2 +-
 .../at/tuwien/api/user/UserThemeSetDto.java   |  2 +-
 .../api/user/UserUpdatePermissionsDto.java    |  2 +-
 .../tuwien/entities/container/Container.java  |  6 +--
 .../container/image/ContainerImage.java       |  2 +-
 .../container/image/ContainerImageDate.java   |  2 +-
 .../image/ContainerImageEnvironmentItem.java  |  2 +-
 .../at/tuwien/entities/database/Database.java | 13 ++-----
 .../entities/database/DatabaseAccess.java     |  5 +--
 .../at/tuwien/entities/database/License.java  |  4 +-
 .../at/tuwien/entities/database/View.java     |  7 +---
 .../tuwien/entities/database/table/Table.java |  4 +-
 .../database/table/columns/TableColumn.java   |  4 +-
 .../table/columns/TableColumnConcept.java     |  4 +-
 .../table/columns/TableColumnUnit.java        |  4 +-
 .../table/constraints/Constraints.java        |  2 +-
 .../constraints/foreignKey/ForeignKey.java    |  4 +-
 .../foreignKey/ForeignKeyReference.java       |  4 +-
 .../table/constraints/unique/Unique.java      |  4 +-
 .../tuwien/entities/identifier/Creator.java   |  2 +-
 .../entities/identifier/Identifier.java       |  6 +--
 .../identifier/RelatedIdentifier.java         |  2 +-
 .../at/tuwien/entities/user/Credential.java   |  4 +-
 .../java/at/tuwien/entities/user/Realm.java   |  3 +-
 .../java/at/tuwien/entities/user/Role.java    |  5 +--
 .../at/tuwien/entities/user/RoleMapping.java  |  5 +--
 .../java/at/tuwien/entities/user/User.java    |  6 +--
 .../tuwien/entities/user/UserAttribute.java   |  6 +--
 dbrepo-metadata-db/pom.xml                    | 20 +++-------
 .../main/java/at/tuwien/querystore/Query.java | 27 ++++++--------
 .../main/java/at/tuwien/config/H2Utils.java   |  2 +-
 139 files changed, 296 insertions(+), 376 deletions(-)

diff --git a/dbrepo-container-service/Dockerfile b/dbrepo-container-service/Dockerfile
index c48dfba282..de2b0a1463 100644
--- a/dbrepo-container-service/Dockerfile
+++ b/dbrepo-container-service/Dockerfile
@@ -3,7 +3,8 @@ FROM dbrepo-metadata-db:latest as dependency
 MAINTAINER Martin Weise <martin.weise@tuwien.ac.at>
 
 ###### SECOND STAGE ######
-FROM maven:slim as build
+FROM maven:3-openjdk-17 as build
+MAINTAINER Martin Weise <martin.weise@tuwien.ac.at>
 
 COPY ./pom.xml ./
 
@@ -19,7 +20,8 @@ COPY ./report ./report
 RUN mvn -q clean package -DskipTests
 
 ###### THIRD STAGE ######
-FROM openjdk:11-jre-slim as runtime
+FROM openjdk:17-alpine as runtime
+MAINTAINER Martin Weise <martin.weise@tuwien.ac.at>
 
 ENV METADATA_DB=fda
 ENV METADATA_USERNAME=root
diff --git a/dbrepo-container-service/pom.xml b/dbrepo-container-service/pom.xml
index 8aa570d6a9..df49de3c81 100644
--- a/dbrepo-container-service/pom.xml
+++ b/dbrepo-container-service/pom.xml
@@ -5,7 +5,7 @@
     <parent>
         <groupId>org.springframework.boot</groupId>
         <artifactId>spring-boot-starter-parent</artifactId>
-        <version>2.3.10.RELEASE</version>
+        <version>3.0.6</version>
     </parent>
 
     <groupId>at.tuwien</groupId>
@@ -22,13 +22,12 @@
     </modules>
 
     <properties>
-        <java.version>11</java.version>
-        <spring-cloud.version>3.0.1</spring-cloud.version>
-        <mapstruct.version>1.4.2.Final</mapstruct.version>
-        <docker.version>3.2.7</docker.version>
-        <swagger.version>2.2.2</swagger.version>
-        <jacoco.version>0.8.7</jacoco.version>
-        <sqlserver.version>9.2.1.jre11</sqlserver.version>
+        <java.version>17</java.version>
+        <spring-cloud.version>4.0.2</spring-cloud.version>
+        <mapstruct.version>1.5.5.Final</mapstruct.version>
+        <docker.version>3.3.0</docker.version>
+        <swagger.version>2.2.9</swagger.version>
+        <jacoco.version>0.8.10</jacoco.version>
         <jwt.version>4.3.0</jwt.version>
     </properties>
 
@@ -79,7 +78,7 @@
         <dependency>
             <groupId>io.swagger.core.v3</groupId>
             <artifactId>swagger-core</artifactId>
-            <version>2.2.2</version>
+            <version>${swagger.version}</version>
         </dependency>
         <!-- Data Source -->
         <dependency>
@@ -109,16 +108,6 @@
             <artifactId>mariadb-java-client</artifactId>
             <version>${mariadb.version}</version>
         </dependency>
-        <dependency>
-            <groupId>mysql</groupId>
-            <artifactId>mysql-connector-java</artifactId>
-            <version>${mysql.version}</version>
-        </dependency>
-        <dependency>
-            <groupId>com.microsoft.sqlserver</groupId>
-            <artifactId>mssql-jdbc</artifactId>
-            <version>${sqlserver.version}</version>
-        </dependency>
         <!-- Testing -->
         <dependency>
             <groupId>org.springframework.boot</groupId>
diff --git a/dbrepo-container-service/rest-service/src/main/java/at/tuwien/endpoints/ContainerEndpoint.java b/dbrepo-container-service/rest-service/src/main/java/at/tuwien/endpoints/ContainerEndpoint.java
index 38d02adb7b..8f69d140c8 100644
--- a/dbrepo-container-service/rest-service/src/main/java/at/tuwien/endpoints/ContainerEndpoint.java
+++ b/dbrepo-container-service/rest-service/src/main/java/at/tuwien/endpoints/ContainerEndpoint.java
@@ -6,7 +6,6 @@ import at.tuwien.entities.container.Container;
 import at.tuwien.entities.user.User;
 import at.tuwien.exception.*;
 import at.tuwien.mapper.ContainerMapper;
-import at.tuwien.service.ContainerService;
 import at.tuwien.service.UserService;
 import at.tuwien.service.impl.ContainerServiceImpl;
 import io.micrometer.core.annotation.Timed;
@@ -22,12 +21,11 @@ import org.springframework.http.HttpStatus;
 import org.springframework.http.ResponseEntity;
 import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.security.core.Authentication;
-import org.springframework.security.core.context.SecurityContext;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.web.bind.annotation.*;
 
-import javax.validation.Valid;
-import javax.validation.constraints.NotNull;
+import jakarta.validation.Valid;
+import jakarta.validation.constraints.NotNull;
 import java.security.Principal;
 import java.util.List;
 import java.util.Optional;
diff --git a/dbrepo-container-service/rest-service/src/main/java/at/tuwien/endpoints/ImageEndpoint.java b/dbrepo-container-service/rest-service/src/main/java/at/tuwien/endpoints/ImageEndpoint.java
index fbd45d747b..aa854398e9 100644
--- a/dbrepo-container-service/rest-service/src/main/java/at/tuwien/endpoints/ImageEndpoint.java
+++ b/dbrepo-container-service/rest-service/src/main/java/at/tuwien/endpoints/ImageEndpoint.java
@@ -24,8 +24,8 @@ import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.web.bind.annotation.*;
 
-import javax.validation.Valid;
-import javax.validation.constraints.NotNull;
+import jakarta.validation.Valid;
+import jakarta.validation.constraints.NotNull;
 import java.security.Principal;
 import java.util.List;
 import java.util.stream.Collectors;
diff --git a/dbrepo-container-service/rest-service/src/test/java/at/tuwien/endpoint/ImageEndpointUnitTest.java b/dbrepo-container-service/rest-service/src/test/java/at/tuwien/endpoint/ImageEndpointUnitTest.java
index e16d70f74a..0bf8201555 100644
--- a/dbrepo-container-service/rest-service/src/test/java/at/tuwien/endpoint/ImageEndpointUnitTest.java
+++ b/dbrepo-container-service/rest-service/src/test/java/at/tuwien/endpoint/ImageEndpointUnitTest.java
@@ -18,11 +18,9 @@ import org.junit.jupiter.api.extension.ExtendWith;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.boot.test.context.SpringBootTest;
 import org.springframework.boot.test.mock.mockito.MockBean;
-import org.springframework.dao.DataIntegrityViolationException;
 import org.springframework.http.HttpStatus;
 import org.springframework.http.ResponseEntity;
 import org.springframework.security.access.AccessDeniedException;
-import org.springframework.security.authentication.AuthenticationCredentialsNotFoundException;
 import org.springframework.security.test.context.support.WithAnonymousUser;
 import org.springframework.security.test.context.support.WithMockUser;
 import org.springframework.test.context.junit.jupiter.SpringExtension;
diff --git a/dbrepo-container-service/rest-service/src/test/java/at/tuwien/service/ImageServiceIntegrationTest.java b/dbrepo-container-service/rest-service/src/test/java/at/tuwien/service/ImageServiceIntegrationTest.java
index 97aa1edfd0..9c6cd35a83 100644
--- a/dbrepo-container-service/rest-service/src/test/java/at/tuwien/service/ImageServiceIntegrationTest.java
+++ b/dbrepo-container-service/rest-service/src/test/java/at/tuwien/service/ImageServiceIntegrationTest.java
@@ -3,7 +3,6 @@ package at.tuwien.service;
 import at.tuwien.BaseUnitTest;
 import at.tuwien.api.container.image.ImageCreateDto;
 import at.tuwien.config.ReadyConfig;
-import at.tuwien.entities.container.image.ContainerImage;
 import at.tuwien.exception.*;
 import at.tuwien.repository.jpa.ContainerRepository;
 import at.tuwien.repository.jpa.ImageRepository;
diff --git a/dbrepo-container-service/rest-service/src/test/java/at/tuwien/service/ImageServiceUnitTest.java b/dbrepo-container-service/rest-service/src/test/java/at/tuwien/service/ImageServiceUnitTest.java
index c86d1f2ee9..0ba2fa3772 100644
--- a/dbrepo-container-service/rest-service/src/test/java/at/tuwien/service/ImageServiceUnitTest.java
+++ b/dbrepo-container-service/rest-service/src/test/java/at/tuwien/service/ImageServiceUnitTest.java
@@ -16,8 +16,8 @@ import org.springframework.boot.test.context.SpringBootTest;
 import org.springframework.boot.test.mock.mockito.MockBean;
 import org.springframework.test.context.junit.jupiter.SpringExtension;
 
-import javax.persistence.EntityNotFoundException;
-import javax.validation.ConstraintViolationException;
+import jakarta.persistence.EntityNotFoundException;
+import jakarta.validation.ConstraintViolationException;
 import java.security.Principal;
 import java.util.List;
 import java.util.Optional;
diff --git a/dbrepo-container-service/services/src/main/java/at/tuwien/auth/AuthTokenFilter.java b/dbrepo-container-service/services/src/main/java/at/tuwien/auth/AuthTokenFilter.java
index b2b01c42ee..92b60f4f8a 100644
--- a/dbrepo-container-service/services/src/main/java/at/tuwien/auth/AuthTokenFilter.java
+++ b/dbrepo-container-service/services/src/main/java/at/tuwien/auth/AuthTokenFilter.java
@@ -6,6 +6,10 @@ import com.auth0.jwt.JWT;
 import com.auth0.jwt.JWTVerifier;
 import com.auth0.jwt.algorithms.Algorithm;
 import com.auth0.jwt.interfaces.DecodedJWT;
+import jakarta.servlet.FilterChain;
+import jakarta.servlet.ServletException;
+import jakarta.servlet.http.HttpServletRequest;
+import jakarta.servlet.http.HttpServletResponse;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.security.authentication.UsernamePasswordAuthenticationToken;
@@ -16,10 +20,6 @@ import org.springframework.security.web.authentication.WebAuthenticationDetailsS
 import org.springframework.util.StringUtils;
 import org.springframework.web.filter.OncePerRequestFilter;
 
-import javax.servlet.FilterChain;
-import javax.servlet.ServletException;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
 import java.io.IOException;
 import java.security.KeyFactory;
 import java.security.NoSuchAlgorithmException;
diff --git a/dbrepo-container-service/services/src/main/java/at/tuwien/config/WebSecurityConfig.java b/dbrepo-container-service/services/src/main/java/at/tuwien/config/WebSecurityConfig.java
index 5724f37ead..061bd0cd72 100644
--- a/dbrepo-container-service/services/src/main/java/at/tuwien/config/WebSecurityConfig.java
+++ b/dbrepo-container-service/services/src/main/java/at/tuwien/config/WebSecurityConfig.java
@@ -9,14 +9,14 @@ import org.springframework.http.HttpMethod;
 import org.springframework.security.config.annotation.method.configuration.EnableGlobalMethodSecurity;
 import org.springframework.security.config.annotation.web.builders.HttpSecurity;
 import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity;
-import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter;
 import org.springframework.security.config.http.SessionCreationPolicy;
+import org.springframework.security.web.SecurityFilterChain;
 import org.springframework.security.web.authentication.UsernamePasswordAuthenticationFilter;
 import org.springframework.web.cors.CorsConfiguration;
 import org.springframework.web.cors.UrlBasedCorsConfigurationSource;
 import org.springframework.web.filter.CorsFilter;
 
-import javax.servlet.http.HttpServletResponse;
+import jakarta.servlet.http.HttpServletResponse;
 
 @Configuration
 @EnableWebSecurity
@@ -27,15 +27,15 @@ import javax.servlet.http.HttpServletResponse;
         bearerFormat = "JWT",
         scheme = "bearer"
 )
-public class WebSecurityConfig extends WebSecurityConfigurerAdapter {
+public class WebSecurityConfig {
 
     @Bean
     public AuthTokenFilter authTokenFilter() {
         return new AuthTokenFilter();
     }
 
-    @Override
-    protected void configure(HttpSecurity http) throws Exception {
+    @Bean
+    public SecurityFilterChain filterChain(HttpSecurity http) throws Exception {
         /* enable CORS and disable CSRF */
         http = http.cors().and().csrf().disable();
         /* set session management to stateless */
@@ -56,11 +56,11 @@ public class WebSecurityConfig extends WebSecurityConfigurerAdapter {
         /* set permissions on endpoints */
         http.authorizeRequests()
                 /* our internal endpoints */
-                .antMatchers(HttpMethod.GET, "/actuator/prometheus/**").permitAll()
+                .requestMatchers(HttpMethod.GET, "/actuator/prometheus/**").permitAll()
                 /* our public endpoints */
-                .antMatchers(HttpMethod.GET, "/api/container/**").permitAll()
-                .antMatchers(HttpMethod.GET, "/api/image/**").permitAll()
-                .antMatchers("/v3/api-docs.yaml",
+                .requestMatchers(HttpMethod.GET, "/api/container/**").permitAll()
+                .requestMatchers(HttpMethod.GET, "/api/image/**").permitAll()
+                .requestMatchers("/v3/api-docs.yaml",
                         "/v3/api-docs/**",
                         "/swagger-ui/**",
                         "/swagger-ui.html").permitAll()
@@ -70,6 +70,7 @@ public class WebSecurityConfig extends WebSecurityConfigurerAdapter {
         http.addFilterBefore(authTokenFilter(),
                 UsernamePasswordAuthenticationFilter.class
         );
+        return http.build();
     }
 
     @Bean
diff --git a/dbrepo-container-service/services/src/main/java/at/tuwien/service/impl/ContainerServiceImpl.java b/dbrepo-container-service/services/src/main/java/at/tuwien/service/impl/ContainerServiceImpl.java
index a3f620572a..8c18fc8987 100644
--- a/dbrepo-container-service/services/src/main/java/at/tuwien/service/impl/ContainerServiceImpl.java
+++ b/dbrepo-container-service/services/src/main/java/at/tuwien/service/impl/ContainerServiceImpl.java
@@ -25,7 +25,6 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.data.domain.PageRequest;
 import org.springframework.data.domain.Sort;
 import org.springframework.stereotype.Service;
-import org.springframework.util.SocketUtils;
 
 import org.springframework.transaction.annotation.Transactional;
 
@@ -71,10 +70,8 @@ public class ContainerServiceImpl implements ContainerService {
             throw new ImageNotFoundException("image was not found in metadata database.");
         }
         /* entity */
-        final Integer availableTcpPort = SocketUtils.findAvailableTcpPort(10000);
         Container container = new Container();
         container.setImageId(image.get().getId());
-        container.setPort(availableTcpPort);
         container.setName(createDto.getName());
         container.setInternalName(containerMapper.containerToInternalContainerName(container));
         /* check duplicate */
@@ -92,11 +89,10 @@ public class ContainerServiceImpl implements ContainerService {
         /* create host mapping */
         final HostConfig hostConfig = this.hostConfig
                 .withNetworkMode(dockerDaemonConfig.getUserNetwork())
-                .withBinds(Bind.parse(dockerDaemonConfig.getMountPath() + ":/tmp"), Bind.parse(response.getName() + ":/var/lib/mysql"))
-                .withPortBindings(PortBinding.parse(availableTcpPort + ":" + image.get().getDefaultPort()));
-        log.debug("container has network {}, volume bind {}, volume bind {} and port bind {}",
+                .withBinds(Bind.parse(dockerDaemonConfig.getMountPath() + ":/tmp"), Bind.parse(response.getName() + ":/var/lib/mysql"));
+        log.debug("container has network {}, volume bind {}, volume bind {}",
                 dockerDaemonConfig.getUserNetwork(), dockerDaemonConfig.getMountPath() + ":/tmp",
-                response.getName() + ":/var/lib/mysql", availableTcpPort + ":" + image.get().getDefaultPort());
+                response.getName() + ":/var/lib/mysql");
         log.trace("host config {}", hostConfig);
         final User user = userService.findByUsername(principal.getName());
         container.setCreatedBy(user.getId());
diff --git a/dbrepo-container-service/services/src/main/java/at/tuwien/service/impl/ImageServiceImpl.java b/dbrepo-container-service/services/src/main/java/at/tuwien/service/impl/ImageServiceImpl.java
index ccb3dbae79..fa1de29edb 100644
--- a/dbrepo-container-service/services/src/main/java/at/tuwien/service/impl/ImageServiceImpl.java
+++ b/dbrepo-container-service/services/src/main/java/at/tuwien/service/impl/ImageServiceImpl.java
@@ -2,7 +2,6 @@ package at.tuwien.service.impl;
 
 import at.tuwien.api.container.image.ImageChangeDto;
 import at.tuwien.api.container.image.ImageCreateDto;
-import at.tuwien.api.container.image.ImageEnvItemDto;
 import at.tuwien.entities.container.image.ContainerImage;
 import at.tuwien.entities.container.image.ContainerImageEnvironmentItem;
 import at.tuwien.exception.*;
@@ -21,11 +20,10 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.dao.DataIntegrityViolationException;
 import org.springframework.dao.EmptyResultDataAccessException;
 import org.springframework.stereotype.Service;
-import org.springframework.transaction.UnexpectedRollbackException;
 import org.springframework.transaction.annotation.Transactional;
 
-import javax.persistence.EntityNotFoundException;
-import javax.validation.ConstraintViolationException;
+import jakarta.persistence.EntityNotFoundException;
+import jakarta.validation.ConstraintViolationException;
 import java.security.Principal;
 import java.time.Duration;
 import java.time.Instant;
diff --git a/dbrepo-database-service/Dockerfile b/dbrepo-database-service/Dockerfile
index 7ed04b677e..b676839354 100644
--- a/dbrepo-database-service/Dockerfile
+++ b/dbrepo-database-service/Dockerfile
@@ -3,7 +3,8 @@ FROM dbrepo-metadata-db:latest as dependency
 MAINTAINER Martin Weise <martin.weise@tuwien.ac.at>
 
 ###### SECOND STAGE ######
-FROM maven:slim as build
+FROM maven:3-openjdk-17 as build
+MAINTAINER Martin Weise <martin.weise@tuwien.ac.at>
 
 COPY ./pom.xml ./
 
@@ -19,7 +20,8 @@ COPY ./report ./report
 RUN mvn -q clean package -DskipTests
 
 ###### THIRD STAGE ######
-FROM openjdk:11-jre-slim as runtime
+FROM openjdk:17-alpine as runtime
+MAINTAINER Martin Weise <martin.weise@tuwien.ac.at>
 
 ENV METADATA_DB=fda
 ENV METADATA_USERNAME=root
diff --git a/dbrepo-database-service/pom.xml b/dbrepo-database-service/pom.xml
index 49aac1bc36..5ab357dea1 100644
--- a/dbrepo-database-service/pom.xml
+++ b/dbrepo-database-service/pom.xml
@@ -5,7 +5,7 @@
     <parent>
         <groupId>org.springframework.boot</groupId>
         <artifactId>spring-boot-starter-parent</artifactId>
-        <version>2.3.10.RELEASE</version>
+        <version>3.0.6</version>
     </parent>
 
     <groupId>at.tuwien</groupId>
@@ -22,16 +22,14 @@
     </modules>
 
     <properties>
-        <java.version>11</java.version>
-        <spring-cloud.version>3.0.1</spring-cloud.version>
-        <mapstruct.version>1.4.2.Final</mapstruct.version>
-        <docker.version>3.2.7</docker.version>
-        <testcontainers.version>1.15.2</testcontainers.version>
-        <swagger.version>2.1.7</swagger.version>
-        <springfox.version>3.0.0</springfox.version>
-        <jacoco.version>0.8.7</jacoco.version>
-        <hibernate-c3po.version>5.6.3.Final</hibernate-c3po.version>
+        <java.version>17</java.version>
+        <spring-cloud.version>4.0.2</spring-cloud.version>
+        <mapstruct.version>1.5.5.Final</mapstruct.version>
+        <docker.version>3.3.0</docker.version>
+        <swagger.version>2.2.9</swagger.version>
+        <jacoco.version>0.8.10</jacoco.version>
         <jwt.version>4.3.0</jwt.version>
+        <hibernate-c3po.version>5.6.3.Final</hibernate-c3po.version>
     </properties>
 
     <dependencies>
@@ -80,9 +78,11 @@
         </dependency>
         <!-- elasticsearch -->
         <dependency>
-            <groupId>org.springframework.data</groupId>
-            <artifactId>spring-data-elasticsearch</artifactId>
+            <groupId>co.elastic.clients</groupId>
+            <artifactId>elasticsearch-java</artifactId>
+            <version>${elasticsearch-client.version}</version>
         </dependency>
+        <!-- AMQP -->
         <dependency>
             <groupId>org.springframework.amqp</groupId>
             <artifactId>spring-rabbit</artifactId>
@@ -194,12 +194,6 @@
             <artifactId>amqp-client</artifactId>
             <version>${rabbit-amqp-client.version}</version>
         </dependency>
-        <!-- Gateway -->
-        <dependency>
-            <groupId>org.projectreactor</groupId>
-            <artifactId>reactor-spring</artifactId>
-            <version>1.0.1.RELEASE</version>
-        </dependency>
     </dependencies>
 
     <build>
diff --git a/dbrepo-database-service/rest-service/src/main/java/at/tuwien/endpoints/AccessEndpoint.java b/dbrepo-database-service/rest-service/src/main/java/at/tuwien/endpoints/AccessEndpoint.java
index a05d168cff..955f7e8816 100644
--- a/dbrepo-database-service/rest-service/src/main/java/at/tuwien/endpoints/AccessEndpoint.java
+++ b/dbrepo-database-service/rest-service/src/main/java/at/tuwien/endpoints/AccessEndpoint.java
@@ -7,10 +7,7 @@ import at.tuwien.api.error.ApiErrorDto;
 import at.tuwien.entities.database.DatabaseAccess;
 import at.tuwien.exception.*;
 import at.tuwien.mapper.DatabaseMapper;
-import at.tuwien.repository.jpa.DatabaseAccessRepository;
 import at.tuwien.service.AccessService;
-import at.tuwien.service.ContainerService;
-import at.tuwien.service.DatabaseService;
 import io.swagger.v3.oas.annotations.Operation;
 import io.swagger.v3.oas.annotations.media.Content;
 import io.swagger.v3.oas.annotations.media.Schema;
@@ -24,9 +21,9 @@ import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.web.bind.annotation.*;
 
-import javax.validation.Valid;
-import javax.validation.constraints.NotBlank;
-import javax.validation.constraints.NotNull;
+import jakarta.validation.Valid;
+import jakarta.validation.constraints.NotBlank;
+import jakarta.validation.constraints.NotNull;
 import java.security.Principal;
 
 @Log4j2
diff --git a/dbrepo-database-service/rest-service/src/main/java/at/tuwien/endpoints/DatabaseEndpoint.java b/dbrepo-database-service/rest-service/src/main/java/at/tuwien/endpoints/DatabaseEndpoint.java
index d2f571e4d2..63114d8cce 100644
--- a/dbrepo-database-service/rest-service/src/main/java/at/tuwien/endpoints/DatabaseEndpoint.java
+++ b/dbrepo-database-service/rest-service/src/main/java/at/tuwien/endpoints/DatabaseEndpoint.java
@@ -26,8 +26,8 @@ import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.web.bind.annotation.*;
 
-import javax.validation.Valid;
-import javax.validation.constraints.NotNull;
+import jakarta.validation.Valid;
+import jakarta.validation.constraints.NotNull;
 import java.security.Principal;
 import java.util.List;
 import java.util.stream.Collectors;
diff --git a/dbrepo-database-service/rest-service/src/main/java/at/tuwien/endpoints/LicenseEndpoint.java b/dbrepo-database-service/rest-service/src/main/java/at/tuwien/endpoints/LicenseEndpoint.java
index 3a05bdad9d..8a2a9e62e4 100644
--- a/dbrepo-database-service/rest-service/src/main/java/at/tuwien/endpoints/LicenseEndpoint.java
+++ b/dbrepo-database-service/rest-service/src/main/java/at/tuwien/endpoints/LicenseEndpoint.java
@@ -19,7 +19,7 @@ import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.web.bind.annotation.*;
 
-import javax.validation.constraints.NotBlank;
+import jakarta.validation.constraints.NotBlank;
 import java.util.List;
 import java.util.stream.Collectors;
 
diff --git a/dbrepo-database-service/rest-service/src/main/resources/application-local.yml b/dbrepo-database-service/rest-service/src/main/resources/application-local.yml
index 271232d6ef..7820b6a062 100644
--- a/dbrepo-database-service/rest-service/src/main/resources/application-local.yml
+++ b/dbrepo-database-service/rest-service/src/main/resources/application-local.yml
@@ -27,6 +27,10 @@ spring:
     virtual-host: dbrepo
     username: fda
     password: fda
+  elasticsearch:
+    password: elastic
+    username: elastic
+    uris: http://localhost:9200
 management.endpoints.web.exposure.include: health,info,prometheus
 server:
   port: 9092
@@ -37,10 +41,6 @@ logging:
     at.tuwien.: info
     org.springframework.web.servlet.mvc.method.annotation.ExceptionHandlerExceptionResolver: debug
 fda:
-  elastic:
-    endpoint: localhost:9200
-    username: elastic
-    password: elastic
   ready.path: ./ready
   jwt:
     issuer: https://localhost/realms/dbrepo
diff --git a/dbrepo-database-service/rest-service/src/main/resources/application.yml b/dbrepo-database-service/rest-service/src/main/resources/application.yml
index 1c0305e3a1..f3bbe67a22 100644
--- a/dbrepo-database-service/rest-service/src/main/resources/application.yml
+++ b/dbrepo-database-service/rest-service/src/main/resources/application.yml
@@ -27,6 +27,10 @@ spring:
     virtual-host: dbrepo
     username: "${BROKER_USERNAME}"
     password: "${BROKER_PASSWORD}"
+  elasticsearch:
+    password: "${ELASTIC_PASSWORD}"
+    username: elastic
+    uris: http://search-service:9200
 management.endpoints.web.exposure.include: health,info,prometheus
 server:
   port: 9092
@@ -37,10 +41,6 @@ logging:
     at.tuwien.: "${LOG_LEVEL}"
     org.springframework.web.servlet.mvc.method.annotation.ExceptionHandlerExceptionResolver: debug
 fda:
-  elastic:
-    endpoint: search-service:9200
-    username: elastic
-    password: "${ELASTIC_PASSWORD}"
   ready.path: /ready
   jwt:
     issuer: "${JWT_ISSUER}"
diff --git a/dbrepo-database-service/services/src/main/java/at/tuwien/auth/AuthTokenFilter.java b/dbrepo-database-service/services/src/main/java/at/tuwien/auth/AuthTokenFilter.java
index b2b01c42ee..92b60f4f8a 100644
--- a/dbrepo-database-service/services/src/main/java/at/tuwien/auth/AuthTokenFilter.java
+++ b/dbrepo-database-service/services/src/main/java/at/tuwien/auth/AuthTokenFilter.java
@@ -6,6 +6,10 @@ import com.auth0.jwt.JWT;
 import com.auth0.jwt.JWTVerifier;
 import com.auth0.jwt.algorithms.Algorithm;
 import com.auth0.jwt.interfaces.DecodedJWT;
+import jakarta.servlet.FilterChain;
+import jakarta.servlet.ServletException;
+import jakarta.servlet.http.HttpServletRequest;
+import jakarta.servlet.http.HttpServletResponse;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.security.authentication.UsernamePasswordAuthenticationToken;
@@ -16,10 +20,6 @@ import org.springframework.security.web.authentication.WebAuthenticationDetailsS
 import org.springframework.util.StringUtils;
 import org.springframework.web.filter.OncePerRequestFilter;
 
-import javax.servlet.FilterChain;
-import javax.servlet.ServletException;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
 import java.io.IOException;
 import java.security.KeyFactory;
 import java.security.NoSuchAlgorithmException;
diff --git a/dbrepo-database-service/services/src/main/java/at/tuwien/config/ElasticsearchConfig.java b/dbrepo-database-service/services/src/main/java/at/tuwien/config/ElasticsearchConfig.java
index dd42aa517f..cf0c63513c 100644
--- a/dbrepo-database-service/services/src/main/java/at/tuwien/config/ElasticsearchConfig.java
+++ b/dbrepo-database-service/services/src/main/java/at/tuwien/config/ElasticsearchConfig.java
@@ -1,20 +1,25 @@
 package at.tuwien.config;
 
+import co.elastic.clients.elasticsearch.ElasticsearchClient;
+import co.elastic.clients.json.jackson.JacksonJsonpMapper;
+import co.elastic.clients.transport.ElasticsearchTransport;
+import co.elastic.clients.transport.rest_client.RestClientTransport;
 import lombok.extern.log4j.Log4j2;
-import org.elasticsearch.client.RestHighLevelClient;
+import org.apache.http.HttpHost;
+import org.apache.http.auth.AuthScope;
+import org.apache.http.auth.UsernamePasswordCredentials;
+import org.apache.http.client.CredentialsProvider;
+import org.apache.http.impl.client.BasicCredentialsProvider;
+import org.elasticsearch.client.RestClient;
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.Configuration;
-import org.springframework.data.elasticsearch.client.ClientConfiguration;
-import org.springframework.data.elasticsearch.client.RestClients;
-import org.springframework.data.elasticsearch.core.ElasticsearchOperations;
-import org.springframework.data.elasticsearch.core.ElasticsearchRestTemplate;
 
 @Log4j2
 @Configuration
 public class ElasticsearchConfig {
 
-    @Value("${fda.elastic.endpoint}")
+    @Value("${spring.elasticsearch.uris}")
     private String elasticEndpoint;
 
     @Value("${fda.elastic.username}")
@@ -24,19 +29,17 @@ public class ElasticsearchConfig {
     private String elasticPassword;
 
     @Bean
-    public RestHighLevelClient client() {
+    public ElasticsearchClient elasticsearchClient() {
         log.debug("elastic endpoint={}", elasticEndpoint);
-        final ClientConfiguration clientConfiguration = ClientConfiguration.builder()
-                .connectedTo(elasticEndpoint)
-                .withBasicAuth(elasticUsername, elasticPassword)
+        final CredentialsProvider credentialsProvider = new BasicCredentialsProvider();
+        credentialsProvider.setCredentials(AuthScope.ANY, new UsernamePasswordCredentials(elasticUsername, elasticPassword));
+        final RestClient restClient = RestClient.builder(HttpHost.create(elasticEndpoint))
+                .setHttpClientConfigCallback(httpClientBuilder -> httpClientBuilder
+                        .setDefaultCredentialsProvider(credentialsProvider))
                 .build();
-        return RestClients.create(clientConfiguration)
-                .rest();
-    }
-
-    @Bean
-    public ElasticsearchOperations elasticsearchTemplate() {
-        return new ElasticsearchRestTemplate(client());
+        ElasticsearchTransport transport = new RestClientTransport(
+                restClient, new JacksonJsonpMapper());
+        return new ElasticsearchClient(transport);
     }
 
 }
\ No newline at end of file
diff --git a/dbrepo-database-service/services/src/main/java/at/tuwien/config/WebSecurityConfig.java b/dbrepo-database-service/services/src/main/java/at/tuwien/config/WebSecurityConfig.java
index afff7f2dad..02dfbbb34d 100644
--- a/dbrepo-database-service/services/src/main/java/at/tuwien/config/WebSecurityConfig.java
+++ b/dbrepo-database-service/services/src/main/java/at/tuwien/config/WebSecurityConfig.java
@@ -9,14 +9,14 @@ import org.springframework.http.HttpMethod;
 import org.springframework.security.config.annotation.method.configuration.EnableGlobalMethodSecurity;
 import org.springframework.security.config.annotation.web.builders.HttpSecurity;
 import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity;
-import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter;
 import org.springframework.security.config.http.SessionCreationPolicy;
+import org.springframework.security.web.SecurityFilterChain;
 import org.springframework.security.web.authentication.UsernamePasswordAuthenticationFilter;
 import org.springframework.web.cors.CorsConfiguration;
 import org.springframework.web.cors.UrlBasedCorsConfigurationSource;
 import org.springframework.web.filter.CorsFilter;
 
-import javax.servlet.http.HttpServletResponse;
+import jakarta.servlet.http.HttpServletResponse;
 
 @Configuration
 @EnableWebSecurity
@@ -27,15 +27,15 @@ import javax.servlet.http.HttpServletResponse;
         bearerFormat = "JWT",
         scheme = "bearer"
 )
-public class WebSecurityConfig extends WebSecurityConfigurerAdapter {
+public class WebSecurityConfig {
 
     @Bean
     public AuthTokenFilter authTokenFilter() {
         return new AuthTokenFilter();
     }
 
-    @Override
-    protected void configure(HttpSecurity http) throws Exception {
+    @Bean
+    public SecurityFilterChain filterChain(HttpSecurity http) throws Exception {
         /* enable CORS and disable CSRF */
         http = http.cors().and().csrf().disable();
         /* set session management to stateless */
@@ -56,10 +56,10 @@ public class WebSecurityConfig extends WebSecurityConfigurerAdapter {
         /* set permissions on endpoints */
         http.authorizeRequests()
                 /* our internal endpoints */
-                .antMatchers(HttpMethod.GET, "/actuator/prometheus/**").permitAll()
+                .requestMatchers(HttpMethod.GET, "/actuator/prometheus/**").permitAll()
                 /* our public endpoints */
-                .antMatchers(HttpMethod.GET, "/api/container/**/database/**").permitAll()
-                .antMatchers("/v3/api-docs.yaml",
+                .requestMatchers(HttpMethod.GET, "/api/container/**/database/**").permitAll()
+                .requestMatchers("/v3/api-docs.yaml",
                         "/v3/api-docs/**",
                         "/swagger-ui/**",
                         "/swagger-ui.html").permitAll()
@@ -69,6 +69,7 @@ public class WebSecurityConfig extends WebSecurityConfigurerAdapter {
         http.addFilterBefore(authTokenFilter(),
                 UsernamePasswordAuthenticationFilter.class
         );
+        return http.build();
     }
 
     @Bean
diff --git a/dbrepo-database-service/services/src/main/java/at/tuwien/service/MessageQueueService.java b/dbrepo-database-service/services/src/main/java/at/tuwien/service/MessageQueueService.java
index 16dcd2a550..fb1a90439b 100644
--- a/dbrepo-database-service/services/src/main/java/at/tuwien/service/MessageQueueService.java
+++ b/dbrepo-database-service/services/src/main/java/at/tuwien/service/MessageQueueService.java
@@ -4,7 +4,7 @@ import at.tuwien.entities.database.Database;
 import at.tuwien.entities.user.User;
 import at.tuwien.exception.*;
 
-import javax.annotation.PostConstruct;
+import jakarta.annotation.PostConstruct;
 import java.security.Principal;
 
 public interface MessageQueueService {
diff --git a/dbrepo-metadata-db/Dockerfile b/dbrepo-metadata-db/Dockerfile
index 264b9e76f3..58227b0c92 100644
--- a/dbrepo-metadata-db/Dockerfile
+++ b/dbrepo-metadata-db/Dockerfile
@@ -1,7 +1,6 @@
 ###### FIRST STAGE ######
-FROM maven:slim as build
-MAINTAINER Cornelia Michlits <cornelia.michlits@tuwien.ac.at>
-LABEL db=metadata
+FROM maven:3-openjdk-17 as build
+MAINTAINER Martin Weise <martin.weise@tuwien.ac.at>
 
 COPY ./pom.xml ./
 
diff --git a/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/amqp/ChannelDetailsDto.java b/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/amqp/ChannelDetailsDto.java
index c04f00ca75..5bb5314272 100644
--- a/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/amqp/ChannelDetailsDto.java
+++ b/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/amqp/ChannelDetailsDto.java
@@ -1,12 +1,9 @@
 package at.tuwien.api.amqp;
 
 import com.fasterxml.jackson.annotation.JsonProperty;
-import io.swagger.v3.oas.annotations.Parameter;
-import io.swagger.v3.oas.annotations.media.Schema;
+import jakarta.validation.constraints.NotNull;
 import lombok.*;
 
-import javax.validation.constraints.NotNull;
-
 @Getter
 @Setter
 @ToString
diff --git a/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/amqp/ConsumerDto.java b/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/amqp/ConsumerDto.java
index 0b97d003fb..e604a70c4e 100644
--- a/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/amqp/ConsumerDto.java
+++ b/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/amqp/ConsumerDto.java
@@ -4,7 +4,7 @@ import com.fasterxml.jackson.annotation.JsonProperty;
 import io.swagger.v3.oas.annotations.Parameter;
 import lombok.*;
 
-import javax.validation.constraints.NotNull;
+import jakarta.validation.constraints.NotNull;
 
 @Getter
 @Setter
diff --git a/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/amqp/CreateExchangeDto.java b/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/amqp/CreateExchangeDto.java
index 4cc4191503..b405ee3fd1 100644
--- a/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/amqp/CreateExchangeDto.java
+++ b/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/amqp/CreateExchangeDto.java
@@ -4,8 +4,8 @@ import com.fasterxml.jackson.annotation.JsonProperty;
 import io.swagger.v3.oas.annotations.Parameter;
 import lombok.*;
 
-import javax.validation.constraints.NotBlank;
-import javax.validation.constraints.NotNull;
+import jakarta.validation.constraints.NotBlank;
+import jakarta.validation.constraints.NotNull;
 
 @Getter
 @Setter
diff --git a/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/amqp/CreateVirtualHostDto.java b/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/amqp/CreateVirtualHostDto.java
index faa08c26d5..f1149f1b23 100644
--- a/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/amqp/CreateVirtualHostDto.java
+++ b/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/amqp/CreateVirtualHostDto.java
@@ -3,7 +3,7 @@ package at.tuwien.api.amqp;
 import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.*;
 
-import javax.validation.constraints.NotNull;
+import jakarta.validation.constraints.NotNull;
 
 @Getter
 @Setter
diff --git a/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/amqp/ExchangeDto.java b/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/amqp/ExchangeDto.java
index aec1b74487..d90d9c57a3 100644
--- a/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/amqp/ExchangeDto.java
+++ b/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/amqp/ExchangeDto.java
@@ -4,8 +4,8 @@ import com.fasterxml.jackson.annotation.JsonProperty;
 import io.swagger.v3.oas.annotations.Parameter;
 import lombok.*;
 
-import javax.validation.constraints.NotBlank;
-import javax.validation.constraints.NotNull;
+import jakarta.validation.constraints.NotBlank;
+import jakarta.validation.constraints.NotNull;
 
 @Getter
 @Setter
diff --git a/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/amqp/GrantVirtualHostPermissionsDto.java b/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/amqp/GrantVirtualHostPermissionsDto.java
index 2bd94cdbbc..8c7f54e2b1 100644
--- a/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/amqp/GrantVirtualHostPermissionsDto.java
+++ b/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/amqp/GrantVirtualHostPermissionsDto.java
@@ -3,7 +3,7 @@ package at.tuwien.api.amqp;
 import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.*;
 
-import javax.validation.constraints.NotNull;
+import jakarta.validation.constraints.NotNull;
 
 @Getter
 @Setter
diff --git a/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/amqp/QueueBriefDto.java b/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/amqp/QueueBriefDto.java
index 968c703de9..aaedcdf0bf 100644
--- a/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/amqp/QueueBriefDto.java
+++ b/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/amqp/QueueBriefDto.java
@@ -4,7 +4,7 @@ import io.swagger.v3.oas.annotations.Parameter;
 import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.*;
 
-import javax.validation.constraints.NotNull;
+import jakarta.validation.constraints.NotNull;
 
 @Getter
 @Setter
diff --git a/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/amqp/QueueDto.java b/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/amqp/QueueDto.java
index f3af493778..30cc16733e 100644
--- a/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/amqp/QueueDto.java
+++ b/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/amqp/QueueDto.java
@@ -3,8 +3,8 @@ package at.tuwien.api.amqp;
 import com.fasterxml.jackson.annotation.JsonProperty;
 import lombok.*;
 
-import javax.validation.constraints.NotBlank;
-import javax.validation.constraints.NotNull;
+import jakarta.validation.constraints.NotBlank;
+import jakarta.validation.constraints.NotNull;
 
 @Getter
 @Setter
diff --git a/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/amqp/TupleDto.java b/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/amqp/TupleDto.java
index caf19dbc93..c94c04b466 100644
--- a/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/amqp/TupleDto.java
+++ b/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/amqp/TupleDto.java
@@ -3,7 +3,7 @@ package at.tuwien.api.amqp;
 import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.*;
 
-import javax.validation.constraints.NotNull;
+import jakarta.validation.constraints.NotNull;
 
 @Getter
 @Setter
diff --git a/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/amqp/UserDetailsDto.java b/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/amqp/UserDetailsDto.java
index 740d94730b..a5174f42fa 100644
--- a/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/amqp/UserDetailsDto.java
+++ b/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/amqp/UserDetailsDto.java
@@ -4,7 +4,7 @@ import com.fasterxml.jackson.annotation.JsonProperty;
 import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.*;
 
-import javax.validation.constraints.NotNull;
+import jakarta.validation.constraints.NotNull;
 
 @Getter
 @Setter
diff --git a/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/auth/CreateUserDto.java b/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/auth/CreateUserDto.java
index d300e66967..70a57b2654 100644
--- a/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/auth/CreateUserDto.java
+++ b/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/auth/CreateUserDto.java
@@ -3,9 +3,9 @@ package at.tuwien.api.auth;
 import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.*;
 
-import javax.validation.constraints.Email;
-import javax.validation.constraints.NotBlank;
-import javax.validation.constraints.NotNull;
+import jakarta.validation.constraints.Email;
+import jakarta.validation.constraints.NotBlank;
+import jakarta.validation.constraints.NotNull;
 import java.util.List;
 
 @Getter
diff --git a/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/auth/CredentialDto.java b/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/auth/CredentialDto.java
index fe1400d3ab..dae6cc8f63 100644
--- a/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/auth/CredentialDto.java
+++ b/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/auth/CredentialDto.java
@@ -3,8 +3,8 @@ package at.tuwien.api.auth;
 import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.*;
 
-import javax.validation.constraints.NotBlank;
-import javax.validation.constraints.NotNull;
+import jakarta.validation.constraints.NotBlank;
+import jakarta.validation.constraints.NotNull;
 
 @Getter
 @Setter
diff --git a/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/auth/JwtResponseDto.java b/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/auth/JwtResponseDto.java
index c92b4913c8..2e2d793b2c 100644
--- a/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/auth/JwtResponseDto.java
+++ b/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/auth/JwtResponseDto.java
@@ -3,7 +3,7 @@ package at.tuwien.api.auth;
 import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.*;
 
-import javax.validation.constraints.NotNull;
+import jakarta.validation.constraints.NotNull;
 import java.util.List;
 
 @Getter
diff --git a/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/auth/LoginRequestDto.java b/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/auth/LoginRequestDto.java
index 87d34649f9..c961774794 100644
--- a/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/auth/LoginRequestDto.java
+++ b/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/auth/LoginRequestDto.java
@@ -3,7 +3,7 @@ package at.tuwien.api.auth;
 import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.*;
 
-import javax.validation.constraints.NotNull;
+import jakarta.validation.constraints.NotNull;
 
 @Getter
 @Setter
diff --git a/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/auth/RealmAccessDto.java b/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/auth/RealmAccessDto.java
index 268d959905..cd63b55bae 100644
--- a/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/auth/RealmAccessDto.java
+++ b/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/auth/RealmAccessDto.java
@@ -3,7 +3,7 @@ package at.tuwien.api.auth;
 import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.*;
 
-import javax.validation.constraints.NotNull;
+import jakarta.validation.constraints.NotNull;
 
 @Getter
 @Setter
diff --git a/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/auth/SignupRequestDto.java b/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/auth/SignupRequestDto.java
index 3f6784bdd0..44a0b4b4c5 100644
--- a/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/auth/SignupRequestDto.java
+++ b/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/auth/SignupRequestDto.java
@@ -3,10 +3,10 @@ package at.tuwien.api.auth;
 import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.*;
 
-import javax.validation.constraints.Email;
-import javax.validation.constraints.NotBlank;
-import javax.validation.constraints.NotNull;
-import javax.validation.constraints.Pattern;
+import jakarta.validation.constraints.Email;
+import jakarta.validation.constraints.NotBlank;
+import jakarta.validation.constraints.NotNull;
+import jakarta.validation.constraints.Pattern;
 
 @Getter
 @Setter
diff --git a/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/auth/TokenIntrospectDto.java b/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/auth/TokenIntrospectDto.java
index 93e38adb6f..0df11f1441 100644
--- a/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/auth/TokenIntrospectDto.java
+++ b/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/auth/TokenIntrospectDto.java
@@ -4,7 +4,7 @@ import com.fasterxml.jackson.annotation.JsonProperty;
 import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.*;
 
-import javax.validation.constraints.NotNull;
+import jakarta.validation.constraints.NotNull;
 
 @Getter
 @Setter
diff --git a/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/container/ContainerBriefDto.java b/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/container/ContainerBriefDto.java
index 77b76c1dd2..1a3bccd269 100644
--- a/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/container/ContainerBriefDto.java
+++ b/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/container/ContainerBriefDto.java
@@ -7,8 +7,8 @@ import com.fasterxml.jackson.annotation.JsonProperty;
 import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.*;
 
-import javax.validation.constraints.NotBlank;
-import javax.validation.constraints.NotNull;
+import jakarta.validation.constraints.NotBlank;
+import jakarta.validation.constraints.NotNull;
 import java.time.Instant;
 
 @Getter
diff --git a/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/container/ContainerChangeDto.java b/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/container/ContainerChangeDto.java
index e49c567870..6de5684bfd 100644
--- a/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/container/ContainerChangeDto.java
+++ b/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/container/ContainerChangeDto.java
@@ -3,7 +3,7 @@ package at.tuwien.api.container;
 import io.swagger.v3.oas.annotations.Parameter;
 import lombok.*;
 
-import javax.validation.constraints.NotNull;
+import jakarta.validation.constraints.NotNull;
 
 @Getter
 @Setter
diff --git a/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/container/ContainerCreateRequestDto.java b/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/container/ContainerCreateRequestDto.java
index 50b82adab8..98e6170ca8 100644
--- a/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/container/ContainerCreateRequestDto.java
+++ b/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/container/ContainerCreateRequestDto.java
@@ -3,7 +3,7 @@ package at.tuwien.api.container;
 import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.*;
 
-import javax.validation.constraints.NotBlank;
+import jakarta.validation.constraints.NotBlank;
 
 @Getter
 @Setter
diff --git a/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/container/ContainerDto.java b/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/container/ContainerDto.java
index e4d32aeb5d..cd112e1da4 100644
--- a/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/container/ContainerDto.java
+++ b/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/container/ContainerDto.java
@@ -8,8 +8,8 @@ import com.fasterxml.jackson.annotation.JsonProperty;
 import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.*;
 
-import javax.validation.constraints.NotBlank;
-import javax.validation.constraints.NotNull;
+import jakarta.validation.constraints.NotBlank;
+import jakarta.validation.constraints.NotNull;
 import java.time.Instant;
 
 @Getter
diff --git a/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/container/image/ImageBriefDto.java b/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/container/image/ImageBriefDto.java
index 036a254605..999657db55 100644
--- a/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/container/image/ImageBriefDto.java
+++ b/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/container/image/ImageBriefDto.java
@@ -3,8 +3,8 @@ package at.tuwien.api.container.image;
 import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.*;
 
-import javax.validation.constraints.NotBlank;
-import javax.validation.constraints.NotNull;
+import jakarta.validation.constraints.NotBlank;
+import jakarta.validation.constraints.NotNull;
 
 @Getter
 @Setter
diff --git a/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/container/image/ImageChangeDto.java b/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/container/image/ImageChangeDto.java
index 5336558b85..894e5a675e 100644
--- a/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/container/image/ImageChangeDto.java
+++ b/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/container/image/ImageChangeDto.java
@@ -4,9 +4,9 @@ import com.fasterxml.jackson.annotation.JsonProperty;
 import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.*;
 
-import javax.validation.constraints.Max;
-import javax.validation.constraints.Min;
-import javax.validation.constraints.NotBlank;
+import jakarta.validation.constraints.Max;
+import jakarta.validation.constraints.Min;
+import jakarta.validation.constraints.NotBlank;
 import java.util.List;
 
 @Getter
diff --git a/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/container/image/ImageCreateDto.java b/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/container/image/ImageCreateDto.java
index 78a4c5f3dc..a0698abf37 100644
--- a/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/container/image/ImageCreateDto.java
+++ b/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/container/image/ImageCreateDto.java
@@ -5,8 +5,8 @@ import io.swagger.v3.oas.annotations.Parameter;
 import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.*;
 
-import javax.validation.constraints.NotBlank;
-import javax.validation.constraints.NotNull;
+import jakarta.validation.constraints.NotBlank;
+import jakarta.validation.constraints.NotNull;
 import java.util.List;
 
 @Getter
diff --git a/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/container/image/ImageDateDto.java b/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/container/image/ImageDateDto.java
index 4db420f6f7..47802b583a 100644
--- a/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/container/image/ImageDateDto.java
+++ b/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/container/image/ImageDateDto.java
@@ -5,8 +5,8 @@ import com.fasterxml.jackson.annotation.JsonProperty;
 import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.*;
 
-import javax.validation.constraints.NotBlank;
-import javax.validation.constraints.NotNull;
+import jakarta.validation.constraints.NotBlank;
+import jakarta.validation.constraints.NotNull;
 import java.time.Instant;
 
 @Getter
diff --git a/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/container/image/ImageDto.java b/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/container/image/ImageDto.java
index a2eaeaf213..8e20b2ab37 100644
--- a/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/container/image/ImageDto.java
+++ b/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/container/image/ImageDto.java
@@ -6,8 +6,8 @@ import com.fasterxml.jackson.annotation.JsonProperty;
 import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.*;
 
-import javax.validation.constraints.NotBlank;
-import javax.validation.constraints.NotNull;
+import jakarta.validation.constraints.NotBlank;
+import jakarta.validation.constraints.NotNull;
 import java.math.BigInteger;
 import java.time.Instant;
 import java.util.List;
diff --git a/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/container/image/ImageEnvItemDto.java b/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/container/image/ImageEnvItemDto.java
index d07f054f62..9d81cac967 100644
--- a/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/container/image/ImageEnvItemDto.java
+++ b/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/container/image/ImageEnvItemDto.java
@@ -4,8 +4,8 @@ import com.fasterxml.jackson.annotation.JsonIgnore;
 import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.*;
 
-import javax.validation.constraints.NotBlank;
-import javax.validation.constraints.NotNull;
+import jakarta.validation.constraints.NotBlank;
+import jakarta.validation.constraints.NotNull;
 
 @Getter
 @Setter
diff --git a/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/database/DatabaseAccessDto.java b/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/database/DatabaseAccessDto.java
index be111aa08c..eeee96c627 100644
--- a/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/database/DatabaseAccessDto.java
+++ b/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/database/DatabaseAccessDto.java
@@ -7,7 +7,7 @@ import com.fasterxml.jackson.annotation.JsonIgnore;
 import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.*;
 
-import javax.validation.constraints.NotNull;
+import jakarta.validation.constraints.NotNull;
 import java.time.Instant;
 import java.util.UUID;
 
diff --git a/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/database/DatabaseBriefDto.java b/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/database/DatabaseBriefDto.java
index f227746ba7..4a582e1188 100644
--- a/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/database/DatabaseBriefDto.java
+++ b/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/database/DatabaseBriefDto.java
@@ -9,8 +9,8 @@ import com.fasterxml.jackson.annotation.JsonProperty;
 import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.*;
 
-import javax.validation.constraints.NotBlank;
-import javax.validation.constraints.NotNull;
+import jakarta.validation.constraints.NotBlank;
+import jakarta.validation.constraints.NotNull;
 import java.time.Instant;
 
 @Getter
diff --git a/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/database/DatabaseCreateDto.java b/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/database/DatabaseCreateDto.java
index 766e2a97e2..5960ae6df8 100644
--- a/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/database/DatabaseCreateDto.java
+++ b/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/database/DatabaseCreateDto.java
@@ -4,8 +4,8 @@ import com.fasterxml.jackson.annotation.JsonProperty;
 import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.*;
 
-import javax.validation.constraints.NotBlank;
-import javax.validation.constraints.NotNull;
+import jakarta.validation.constraints.NotBlank;
+import jakarta.validation.constraints.NotNull;
 
 @Getter
 @Setter
diff --git a/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/database/DatabaseDto.java b/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/database/DatabaseDto.java
index 5d55626797..6554f69071 100644
--- a/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/database/DatabaseDto.java
+++ b/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/database/DatabaseDto.java
@@ -14,8 +14,8 @@ import org.springframework.data.elasticsearch.annotations.DateFormat;
 import org.springframework.data.elasticsearch.annotations.Document;
 import org.springframework.data.elasticsearch.annotations.Field;
 
-import javax.validation.constraints.NotBlank;
-import javax.validation.constraints.NotNull;
+import jakarta.validation.constraints.NotBlank;
+import jakarta.validation.constraints.NotNull;
 import java.time.Instant;
 import java.util.List;
 
diff --git a/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/database/DatabaseGiveAccessDto.java b/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/database/DatabaseGiveAccessDto.java
index b23d904d35..67acd21766 100644
--- a/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/database/DatabaseGiveAccessDto.java
+++ b/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/database/DatabaseGiveAccessDto.java
@@ -2,8 +2,8 @@ package at.tuwien.api.database;
 
 import lombok.*;
 
-import javax.validation.constraints.NotBlank;
-import javax.validation.constraints.NotNull;
+import jakarta.validation.constraints.NotBlank;
+import jakarta.validation.constraints.NotNull;
 
 @Getter
 @Setter
diff --git a/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/database/DatabaseModifyAccessDto.java b/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/database/DatabaseModifyAccessDto.java
index d8a7053c03..871ee52958 100644
--- a/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/database/DatabaseModifyAccessDto.java
+++ b/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/database/DatabaseModifyAccessDto.java
@@ -2,7 +2,7 @@ package at.tuwien.api.database;
 
 import lombok.*;
 
-import javax.validation.constraints.NotNull;
+import jakarta.validation.constraints.NotNull;
 
 @Getter
 @Setter
diff --git a/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/database/DatabaseModifyVisibilityDto.java b/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/database/DatabaseModifyVisibilityDto.java
index 09eba06f56..eeb8574e2f 100644
--- a/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/database/DatabaseModifyVisibilityDto.java
+++ b/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/database/DatabaseModifyVisibilityDto.java
@@ -4,7 +4,7 @@ import com.fasterxml.jackson.annotation.JsonProperty;
 import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.*;
 
-import javax.validation.constraints.NotNull;
+import jakarta.validation.constraints.NotNull;
 
 @Getter
 @Setter
diff --git a/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/database/DatabaseTransferDto.java b/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/database/DatabaseTransferDto.java
index f75caebecd..b7682cbbed 100644
--- a/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/database/DatabaseTransferDto.java
+++ b/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/database/DatabaseTransferDto.java
@@ -2,7 +2,7 @@ package at.tuwien.api.database;
 
 import lombok.*;
 
-import javax.validation.constraints.NotNull;
+import jakarta.validation.constraints.NotNull;
 
 @Getter
 @Setter
diff --git a/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/database/LicenseDto.java b/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/database/LicenseDto.java
index bf8b6b10e6..d657108d71 100644
--- a/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/database/LicenseDto.java
+++ b/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/database/LicenseDto.java
@@ -3,8 +3,8 @@ package at.tuwien.api.database;
 import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.*;
 
-import javax.validation.constraints.NotBlank;
-import javax.validation.constraints.NotNull;
+import jakarta.validation.constraints.NotBlank;
+import jakarta.validation.constraints.NotNull;
 
 @Getter
 @Setter
diff --git a/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/database/SubjectModifyDto.java b/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/database/SubjectModifyDto.java
index c66c869091..a3e9af8769 100644
--- a/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/database/SubjectModifyDto.java
+++ b/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/database/SubjectModifyDto.java
@@ -3,7 +3,7 @@ package at.tuwien.api.database;
 import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.*;
 
-import javax.validation.constraints.NotNull;
+import jakarta.validation.constraints.NotNull;
 
 @Getter
 @Setter
diff --git a/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/database/ViewBriefDto.java b/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/database/ViewBriefDto.java
index ee656d297b..3d51ae4a65 100644
--- a/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/database/ViewBriefDto.java
+++ b/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/database/ViewBriefDto.java
@@ -7,8 +7,8 @@ import com.fasterxml.jackson.annotation.JsonProperty;
 import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.*;
 
-import javax.validation.constraints.NotBlank;
-import javax.validation.constraints.NotNull;
+import jakarta.validation.constraints.NotBlank;
+import jakarta.validation.constraints.NotNull;
 import java.time.Instant;
 import java.util.UUID;
 
diff --git a/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/database/ViewCreateDto.java b/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/database/ViewCreateDto.java
index d4b6b81f01..aea8de5a99 100644
--- a/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/database/ViewCreateDto.java
+++ b/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/database/ViewCreateDto.java
@@ -4,8 +4,8 @@ import com.fasterxml.jackson.annotation.JsonProperty;
 import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.*;
 
-import javax.validation.constraints.NotBlank;
-import javax.validation.constraints.NotNull;
+import jakarta.validation.constraints.NotBlank;
+import jakarta.validation.constraints.NotNull;
 
 @Getter
 @Setter
diff --git a/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/database/ViewDto.java b/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/database/ViewDto.java
index 867e83e771..6c521b5e06 100644
--- a/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/database/ViewDto.java
+++ b/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/database/ViewDto.java
@@ -8,8 +8,8 @@ import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.*;
 import org.springframework.data.elasticsearch.annotations.Document;
 
-import javax.validation.constraints.NotBlank;
-import javax.validation.constraints.NotNull;
+import jakarta.validation.constraints.NotBlank;
+import jakarta.validation.constraints.NotNull;
 import java.time.Instant;
 import java.util.UUID;
 
diff --git a/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/database/query/ExecuteStatementDto.java b/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/database/query/ExecuteStatementDto.java
index 0754b88bbb..d84afd9afb 100644
--- a/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/database/query/ExecuteStatementDto.java
+++ b/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/database/query/ExecuteStatementDto.java
@@ -4,7 +4,7 @@ import com.fasterxml.jackson.annotation.JsonFormat;
 import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.*;
 
-import javax.validation.constraints.NotBlank;
+import jakarta.validation.constraints.NotBlank;
 import java.time.Instant;
 
 @Getter
diff --git a/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/database/query/ExportDto.java b/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/database/query/ExportDto.java
index 2b136bf378..c5b80615dd 100644
--- a/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/database/query/ExportDto.java
+++ b/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/database/query/ExportDto.java
@@ -3,7 +3,7 @@ package at.tuwien.api.database.query;
 import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.*;
 
-import javax.validation.constraints.NotBlank;
+import jakarta.validation.constraints.NotBlank;
 
 @Getter
 @Setter
diff --git a/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/database/query/ImportDto.java b/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/database/query/ImportDto.java
index 77bad91c8b..e7636a95c0 100644
--- a/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/database/query/ImportDto.java
+++ b/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/database/query/ImportDto.java
@@ -5,9 +5,9 @@ import io.swagger.v3.oas.annotations.Parameter;
 import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.*;
 
-import javax.validation.constraints.Min;
-import javax.validation.constraints.NotBlank;
-import javax.validation.constraints.NotNull;
+import jakarta.validation.constraints.Min;
+import jakarta.validation.constraints.NotBlank;
+import jakarta.validation.constraints.NotNull;
 
 @Getter
 @Setter
diff --git a/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/database/query/QueryBriefDto.java b/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/database/query/QueryBriefDto.java
index 3f641f1a1c..e3acd7c515 100644
--- a/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/database/query/QueryBriefDto.java
+++ b/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/database/query/QueryBriefDto.java
@@ -10,8 +10,8 @@ import io.swagger.v3.oas.annotations.Parameter;
 import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.*;
 
-import javax.validation.constraints.NotBlank;
-import javax.validation.constraints.NotNull;
+import jakarta.validation.constraints.NotBlank;
+import jakarta.validation.constraints.NotNull;
 import java.time.Instant;
 import java.util.UUID;
 
diff --git a/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/database/query/QueryDto.java b/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/database/query/QueryDto.java
index db5cb11fb7..216267dbac 100644
--- a/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/database/query/QueryDto.java
+++ b/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/database/query/QueryDto.java
@@ -8,8 +8,8 @@ import com.fasterxml.jackson.annotation.JsonProperty;
 import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.*;
 
-import javax.validation.constraints.NotBlank;
-import javax.validation.constraints.NotNull;
+import jakarta.validation.constraints.NotBlank;
+import jakarta.validation.constraints.NotNull;
 import java.time.Instant;
 import java.util.UUID;
 
diff --git a/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/database/query/QueryResultDto.java b/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/database/query/QueryResultDto.java
index a9ece1cb1d..fb9f1d9f71 100644
--- a/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/database/query/QueryResultDto.java
+++ b/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/database/query/QueryResultDto.java
@@ -4,7 +4,7 @@ import com.fasterxml.jackson.annotation.JsonProperty;
 import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.*;
 
-import javax.validation.constraints.NotNull;
+import jakarta.validation.constraints.NotNull;
 import java.util.List;
 import java.util.Map;
 
diff --git a/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/database/query/SaveStatementDto.java b/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/database/query/SaveStatementDto.java
index eaf459ba16..4987b6c2f9 100644
--- a/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/database/query/SaveStatementDto.java
+++ b/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/database/query/SaveStatementDto.java
@@ -3,7 +3,7 @@ package at.tuwien.api.database.query;
 import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.*;
 
-import javax.validation.constraints.NotBlank;
+import jakarta.validation.constraints.NotBlank;
 
 @Getter
 @Setter
diff --git a/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/database/table/TableBriefDto.java b/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/database/table/TableBriefDto.java
index aa4f25af3b..d1d3ca5c60 100644
--- a/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/database/table/TableBriefDto.java
+++ b/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/database/table/TableBriefDto.java
@@ -7,8 +7,8 @@ import com.fasterxml.jackson.annotation.JsonProperty;
 import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.*;
 
-import javax.validation.constraints.NotBlank;
-import javax.validation.constraints.NotNull;
+import jakarta.validation.constraints.NotBlank;
+import jakarta.validation.constraints.NotNull;
 import java.util.List;
 
 @Getter
diff --git a/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/database/table/TableCreateDto.java b/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/database/table/TableCreateDto.java
index cca2d8bec2..a1101f8e9a 100644
--- a/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/database/table/TableCreateDto.java
+++ b/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/database/table/TableCreateDto.java
@@ -5,8 +5,8 @@ import at.tuwien.api.database.table.constraints.ConstraintsCreateDto;
 import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.*;
 
-import javax.validation.constraints.NotBlank;
-import javax.validation.constraints.NotNull;
+import jakarta.validation.constraints.NotBlank;
+import jakarta.validation.constraints.NotNull;
 import java.util.List;
 
 @Getter
diff --git a/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/database/table/TableCsvDeleteDto.java b/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/database/table/TableCsvDeleteDto.java
index 77350153d8..1e90e02149 100644
--- a/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/database/table/TableCsvDeleteDto.java
+++ b/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/database/table/TableCsvDeleteDto.java
@@ -2,7 +2,7 @@ package at.tuwien.api.database.table;
 
 import lombok.*;
 
-import javax.validation.constraints.NotNull;
+import jakarta.validation.constraints.NotNull;
 import java.util.Map;
 
 @Getter
diff --git a/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/database/table/TableCsvDto.java b/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/database/table/TableCsvDto.java
index cec90849d4..4b7c7c14cb 100644
--- a/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/database/table/TableCsvDto.java
+++ b/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/database/table/TableCsvDto.java
@@ -2,7 +2,7 @@ package at.tuwien.api.database.table;
 
 import lombok.*;
 
-import javax.validation.constraints.NotNull;
+import jakarta.validation.constraints.NotNull;
 import java.util.Map;
 
 @Getter
diff --git a/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/database/table/TableCsvInformationDto.java b/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/database/table/TableCsvInformationDto.java
index 6857fb96ba..3d1975b5d7 100644
--- a/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/database/table/TableCsvInformationDto.java
+++ b/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/database/table/TableCsvInformationDto.java
@@ -5,8 +5,8 @@ import com.fasterxml.jackson.annotation.JsonProperty;
 import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.*;
 
-import javax.validation.constraints.NotBlank;
-import javax.validation.constraints.NotNull;
+import jakarta.validation.constraints.NotBlank;
+import jakarta.validation.constraints.NotNull;
 import java.util.List;
 
 @Setter
diff --git a/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/database/table/TableCsvUpdateDto.java b/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/database/table/TableCsvUpdateDto.java
index 43c74af87f..ff5e358eda 100644
--- a/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/database/table/TableCsvUpdateDto.java
+++ b/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/database/table/TableCsvUpdateDto.java
@@ -2,7 +2,7 @@ package at.tuwien.api.database.table;
 
 import lombok.*;
 
-import javax.validation.constraints.NotNull;
+import jakarta.validation.constraints.NotNull;
 import java.util.Map;
 
 @Getter
diff --git a/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/database/table/TableDto.java b/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/database/table/TableDto.java
index 25315bd658..4e0368cb6c 100644
--- a/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/database/table/TableDto.java
+++ b/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/database/table/TableDto.java
@@ -10,8 +10,8 @@ import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.*;
 import org.springframework.data.elasticsearch.annotations.Document;
 
-import javax.validation.constraints.NotBlank;
-import javax.validation.constraints.NotNull;
+import jakarta.validation.constraints.NotBlank;
+import jakarta.validation.constraints.NotNull;
 import java.time.Instant;
 import java.util.List;
 
diff --git a/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/database/table/TableHistoryDto.java b/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/database/table/TableHistoryDto.java
index f0cacdcfa0..f51b2e77a9 100644
--- a/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/database/table/TableHistoryDto.java
+++ b/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/database/table/TableHistoryDto.java
@@ -4,7 +4,7 @@ import com.fasterxml.jackson.annotation.JsonFormat;
 import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.*;
 
-import javax.validation.constraints.NotNull;
+import jakarta.validation.constraints.NotNull;
 import java.time.Instant;
 
 @Getter
diff --git a/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/database/table/columns/ColumnBriefDto.java b/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/database/table/columns/ColumnBriefDto.java
index 77c4b576ee..16d0cd6619 100644
--- a/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/database/table/columns/ColumnBriefDto.java
+++ b/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/database/table/columns/ColumnBriefDto.java
@@ -4,8 +4,8 @@ import com.fasterxml.jackson.annotation.JsonProperty;
 import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.*;
 
-import javax.validation.constraints.NotBlank;
-import javax.validation.constraints.NotNull;
+import jakarta.validation.constraints.NotBlank;
+import jakarta.validation.constraints.NotNull;
 
 @Getter
 @Setter
diff --git a/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/database/table/columns/ColumnCreateDto.java b/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/database/table/columns/ColumnCreateDto.java
index 5c7786aad0..204fc024c9 100644
--- a/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/database/table/columns/ColumnCreateDto.java
+++ b/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/database/table/columns/ColumnCreateDto.java
@@ -1,13 +1,11 @@
 package at.tuwien.api.database.table.columns;
 
 import com.fasterxml.jackson.annotation.JsonProperty;
-import io.swagger.v3.oas.annotations.Parameter;
 import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.*;
 
-import javax.persistence.Column;
-import javax.validation.constraints.NotBlank;
-import javax.validation.constraints.NotNull;
+import jakarta.validation.constraints.NotBlank;
+import jakarta.validation.constraints.NotNull;
 
 @Getter
 @Setter
diff --git a/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/database/table/columns/ColumnDto.java b/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/database/table/columns/ColumnDto.java
index e9996c7088..a79cd93767 100644
--- a/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/database/table/columns/ColumnDto.java
+++ b/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/database/table/columns/ColumnDto.java
@@ -10,8 +10,8 @@ import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.*;
 import org.springframework.data.elasticsearch.annotations.Document;
 
-import javax.validation.constraints.NotBlank;
-import javax.validation.constraints.NotNull;
+import jakarta.validation.constraints.NotBlank;
+import jakarta.validation.constraints.NotNull;
 
 @Getter
 @Setter
diff --git a/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/database/table/columns/concepts/ConceptDto.java b/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/database/table/columns/concepts/ConceptDto.java
index 3381397c7e..ca02d1189d 100644
--- a/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/database/table/columns/concepts/ConceptDto.java
+++ b/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/database/table/columns/concepts/ConceptDto.java
@@ -4,8 +4,8 @@ import com.fasterxml.jackson.annotation.JsonFormat;
 import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.*;
 
-import javax.validation.constraints.NotBlank;
-import javax.validation.constraints.NotNull;
+import jakarta.validation.constraints.NotBlank;
+import jakarta.validation.constraints.NotNull;
 import java.time.Instant;
 
 @Getter
diff --git a/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/database/table/columns/concepts/UnitDto.java b/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/database/table/columns/concepts/UnitDto.java
index 1ffcbe7ef8..af56ff3c21 100644
--- a/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/database/table/columns/concepts/UnitDto.java
+++ b/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/database/table/columns/concepts/UnitDto.java
@@ -4,8 +4,8 @@ import com.fasterxml.jackson.annotation.JsonFormat;
 import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.*;
 
-import javax.validation.constraints.NotBlank;
-import javax.validation.constraints.NotNull;
+import jakarta.validation.constraints.NotBlank;
+import jakarta.validation.constraints.NotNull;
 import java.time.Instant;
 
 @Getter
diff --git a/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/database/table/constraints/foreignKey/ForeignKeyDto.java b/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/database/table/constraints/foreignKey/ForeignKeyDto.java
index fbd0d3b267..e2b1889622 100644
--- a/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/database/table/constraints/foreignKey/ForeignKeyDto.java
+++ b/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/database/table/constraints/foreignKey/ForeignKeyDto.java
@@ -1,13 +1,10 @@
 package at.tuwien.api.database.table.constraints.foreignKey;
 
 import at.tuwien.api.database.table.TableBriefDto;
-import at.tuwien.api.database.table.TableDto;
 import at.tuwien.api.database.table.columns.ColumnDto;
 import com.fasterxml.jackson.annotation.JsonProperty;
 import lombok.*;
 
-import javax.persistence.Entity;
-import javax.persistence.Transient;
 import java.util.List;
 
 @Getter
diff --git a/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/datacite/doi/DataCiteCreateDoi.java b/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/datacite/doi/DataCiteCreateDoi.java
index d2c9889e42..b46bf4d3a4 100644
--- a/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/datacite/doi/DataCiteCreateDoi.java
+++ b/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/datacite/doi/DataCiteCreateDoi.java
@@ -2,8 +2,8 @@ package at.tuwien.api.datacite.doi;
 
 import lombok.*;
 
-import javax.validation.constraints.NotBlank;
-import javax.validation.constraints.NotNull;
+import jakarta.validation.constraints.NotBlank;
+import jakarta.validation.constraints.NotNull;
 import java.io.Serializable;
 import java.util.List;
 
diff --git a/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/datacite/doi/DataCiteDoiCreator.java b/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/datacite/doi/DataCiteDoiCreator.java
index 87aa1fcbf5..7d67a0a731 100644
--- a/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/datacite/doi/DataCiteDoiCreator.java
+++ b/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/datacite/doi/DataCiteDoiCreator.java
@@ -2,7 +2,7 @@ package at.tuwien.api.datacite.doi;
 
 import lombok.*;
 
-import javax.validation.constraints.NotBlank;
+import jakarta.validation.constraints.NotBlank;
 import java.io.Serializable;
 import java.util.List;
 
diff --git a/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/datacite/doi/DataCiteDoiTitle.java b/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/datacite/doi/DataCiteDoiTitle.java
index 8446813f11..644a4508cb 100644
--- a/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/datacite/doi/DataCiteDoiTitle.java
+++ b/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/datacite/doi/DataCiteDoiTitle.java
@@ -3,7 +3,7 @@ package at.tuwien.api.datacite.doi;
 import com.fasterxml.jackson.annotation.JsonProperty;
 import lombok.*;
 
-import javax.validation.constraints.NotBlank;
+import jakarta.validation.constraints.NotBlank;
 import java.io.Serializable;
 
 @Data
diff --git a/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/datacite/doi/DataCiteDoiTypes.java b/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/datacite/doi/DataCiteDoiTypes.java
index dcb5016867..4218e12009 100644
--- a/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/datacite/doi/DataCiteDoiTypes.java
+++ b/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/datacite/doi/DataCiteDoiTypes.java
@@ -2,7 +2,7 @@ package at.tuwien.api.datacite.doi;
 
 import lombok.*;
 
-import javax.validation.constraints.NotNull;
+import jakarta.validation.constraints.NotNull;
 import java.io.Serializable;
 
 @Data
diff --git a/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/error/ApiErrorDto.java b/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/error/ApiErrorDto.java
index 66a1aeda0c..2d6d83db34 100644
--- a/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/error/ApiErrorDto.java
+++ b/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/error/ApiErrorDto.java
@@ -4,7 +4,7 @@ import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.*;
 import org.springframework.http.HttpStatus;
 
-import javax.validation.constraints.NotNull;
+import jakarta.validation.constraints.NotNull;
 
 @Getter
 @Setter
diff --git a/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/identifier/CreatorBriefDto.java b/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/identifier/CreatorBriefDto.java
index ad0910407b..ea386c1461 100644
--- a/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/identifier/CreatorBriefDto.java
+++ b/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/identifier/CreatorBriefDto.java
@@ -7,7 +7,7 @@ import lombok.Data;
 import lombok.Getter;
 import lombok.Setter;
 
-import javax.validation.constraints.NotBlank;
+import jakarta.validation.constraints.NotBlank;
 @Data
 @Getter
 @Setter
diff --git a/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/identifier/CreatorCreateDto.java b/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/identifier/CreatorCreateDto.java
index a81faae44a..0d0bc83fb6 100644
--- a/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/identifier/CreatorCreateDto.java
+++ b/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/identifier/CreatorCreateDto.java
@@ -7,7 +7,7 @@ import lombok.Getter;
 import lombok.Setter;
 import lombok.extern.jackson.Jacksonized;
 
-import javax.validation.constraints.NotBlank;
+import jakarta.validation.constraints.NotBlank;
 
 @Data
 @Getter
diff --git a/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/identifier/CreatorDto.java b/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/identifier/CreatorDto.java
index 8423fe4120..8513d10380 100644
--- a/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/identifier/CreatorDto.java
+++ b/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/identifier/CreatorDto.java
@@ -7,8 +7,8 @@ import io.swagger.v3.oas.annotations.Parameter;
 import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.*;
 
-import javax.validation.constraints.NotBlank;
-import javax.validation.constraints.NotNull;
+import jakarta.validation.constraints.NotBlank;
+import jakarta.validation.constraints.NotNull;
 import java.time.Instant;
 
 @Data
diff --git a/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/identifier/IdentifierBriefDto.java b/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/identifier/IdentifierBriefDto.java
index 6b2f0dc366..817e1fdb59 100644
--- a/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/identifier/IdentifierBriefDto.java
+++ b/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/identifier/IdentifierBriefDto.java
@@ -9,8 +9,8 @@ import lombok.Data;
 import lombok.Getter;
 import lombok.Setter;
 
-import javax.validation.constraints.NotBlank;
-import javax.validation.constraints.NotNull;
+import jakarta.validation.constraints.NotBlank;
+import jakarta.validation.constraints.NotNull;
 import java.time.Instant;
 import java.util.List;
 
diff --git a/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/identifier/IdentifierCreateDto.java b/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/identifier/IdentifierCreateDto.java
index e460cd8c59..a38ccfe4ed 100644
--- a/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/identifier/IdentifierCreateDto.java
+++ b/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/identifier/IdentifierCreateDto.java
@@ -9,9 +9,9 @@ import lombok.Data;
 import lombok.Getter;
 import lombok.Setter;
 
-import javax.validation.constraints.NotBlank;
-import javax.validation.constraints.NotNull;
-import javax.validation.constraints.NotEmpty;
+import jakarta.validation.constraints.NotBlank;
+import jakarta.validation.constraints.NotNull;
+import jakarta.validation.constraints.NotEmpty;
 import java.util.List;
 
 @Data
diff --git a/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/identifier/IdentifierDto.java b/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/identifier/IdentifierDto.java
index 1234beec96..bb3ebcc8bc 100644
--- a/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/identifier/IdentifierDto.java
+++ b/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/identifier/IdentifierDto.java
@@ -10,8 +10,8 @@ import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.*;
 import org.springframework.data.elasticsearch.annotations.Document;
 
-import javax.validation.constraints.NotBlank;
-import javax.validation.constraints.NotNull;
+import jakarta.validation.constraints.NotBlank;
+import jakarta.validation.constraints.NotNull;
 import java.time.Instant;
 import java.util.List;
 
diff --git a/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/identifier/IdentifierUpdateDto.java b/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/identifier/IdentifierUpdateDto.java
index 3827019e11..610533188b 100644
--- a/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/identifier/IdentifierUpdateDto.java
+++ b/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/identifier/IdentifierUpdateDto.java
@@ -9,9 +9,9 @@ import lombok.Data;
 import lombok.Getter;
 import lombok.Setter;
 
-import javax.validation.constraints.NotBlank;
-import javax.validation.constraints.NotNull;
-import javax.validation.constraints.NotEmpty;
+import jakarta.validation.constraints.NotBlank;
+import jakarta.validation.constraints.NotNull;
+import jakarta.validation.constraints.NotEmpty;
 import java.util.List;
 
 @Data
diff --git a/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/identifier/RelatedIdentifierCreateDto.java b/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/identifier/RelatedIdentifierCreateDto.java
index f6e9e1c312..8b04575432 100644
--- a/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/identifier/RelatedIdentifierCreateDto.java
+++ b/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/identifier/RelatedIdentifierCreateDto.java
@@ -4,7 +4,7 @@ import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.*;
 import lombok.extern.jackson.Jacksonized;
 
-import javax.validation.constraints.NotNull;
+import jakarta.validation.constraints.NotNull;
 
 @Data
 @Getter
diff --git a/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/identifier/RelatedIdentifierDto.java b/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/identifier/RelatedIdentifierDto.java
index b7ffb97c90..390ee3e1e8 100644
--- a/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/identifier/RelatedIdentifierDto.java
+++ b/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/identifier/RelatedIdentifierDto.java
@@ -8,7 +8,7 @@ import io.swagger.v3.oas.annotations.Parameter;
 import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.*;
 
-import javax.validation.constraints.NotNull;
+import jakarta.validation.constraints.NotNull;
 import java.time.Instant;
 
 @Data
diff --git a/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/user/ExchangeUpdatePermissionsDto.java b/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/user/ExchangeUpdatePermissionsDto.java
index 57d639f916..d1f1f218e8 100644
--- a/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/user/ExchangeUpdatePermissionsDto.java
+++ b/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/user/ExchangeUpdatePermissionsDto.java
@@ -3,7 +3,7 @@ package at.tuwien.api.user;
 import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.*;
 
-import javax.validation.constraints.NotBlank;
+import jakarta.validation.constraints.NotBlank;
 
 @Getter
 @Setter
diff --git a/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/user/UserAttributeDto.java b/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/user/UserAttributeDto.java
index fc95f67dc6..3f77686aab 100644
--- a/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/user/UserAttributeDto.java
+++ b/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/user/UserAttributeDto.java
@@ -4,7 +4,7 @@ import com.fasterxml.jackson.annotation.JsonIgnore;
 import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.*;
 
-import javax.validation.constraints.NotNull;
+import jakarta.validation.constraints.NotNull;
 import java.util.UUID;
 
 @Getter
diff --git a/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/user/UserBriefDto.java b/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/user/UserBriefDto.java
index 62dfb946fe..1030fb41a2 100644
--- a/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/user/UserBriefDto.java
+++ b/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/user/UserBriefDto.java
@@ -1,14 +1,10 @@
 package at.tuwien.api.user;
 
-import com.fasterxml.jackson.annotation.JsonIgnore;
 import com.fasterxml.jackson.annotation.JsonProperty;
-import io.swagger.v3.oas.annotations.Parameter;
 import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.*;
-import org.springframework.security.core.userdetails.UserDetails;
 
-import javax.validation.constraints.NotNull;
-import java.util.List;
+import jakarta.validation.constraints.NotNull;
 import java.util.UUID;
 
 @Getter
diff --git a/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/user/UserDetailsDto.java b/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/user/UserDetailsDto.java
index 53e238e3c8..56eeda4829 100644
--- a/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/user/UserDetailsDto.java
+++ b/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/user/UserDetailsDto.java
@@ -4,8 +4,8 @@ import lombok.*;
 import org.springframework.security.core.GrantedAuthority;
 import org.springframework.security.core.userdetails.UserDetails;
 
-import javax.validation.constraints.Email;
-import javax.validation.constraints.NotNull;
+import jakarta.validation.constraints.Email;
+import jakarta.validation.constraints.NotNull;
 import java.util.List;
 
 @Getter
diff --git a/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/user/UserDto.java b/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/user/UserDto.java
index 2c824f4aca..fd5c7ca85f 100644
--- a/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/user/UserDto.java
+++ b/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/user/UserDto.java
@@ -5,7 +5,7 @@ import com.fasterxml.jackson.annotation.JsonProperty;
 import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.*;
 
-import javax.validation.constraints.NotNull;
+import jakarta.validation.constraints.NotNull;
 import java.util.List;
 import java.util.UUID;
 
diff --git a/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/user/UserEmailDto.java b/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/user/UserEmailDto.java
index b0bda4ebfe..6d2db19757 100644
--- a/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/user/UserEmailDto.java
+++ b/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/user/UserEmailDto.java
@@ -3,8 +3,8 @@ package at.tuwien.api.user;
 import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.*;
 
-import javax.validation.constraints.Email;
-import javax.validation.constraints.NotNull;
+import jakarta.validation.constraints.Email;
+import jakarta.validation.constraints.NotNull;
 
 @Getter
 @Setter
diff --git a/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/user/UserForgotDto.java b/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/user/UserForgotDto.java
index 2a6bf21283..9433ede1a3 100644
--- a/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/user/UserForgotDto.java
+++ b/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/user/UserForgotDto.java
@@ -3,7 +3,7 @@ package at.tuwien.api.user;
 import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.*;
 
-import javax.validation.constraints.Email;
+import jakarta.validation.constraints.Email;
 
 @Getter
 @Setter
diff --git a/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/user/UserModifyPasswordDto.java b/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/user/UserModifyPasswordDto.java
index 78d9c32846..c9763ee84f 100644
--- a/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/user/UserModifyPasswordDto.java
+++ b/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/user/UserModifyPasswordDto.java
@@ -3,7 +3,7 @@ package at.tuwien.api.user;
 import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.*;
 
-import javax.validation.constraints.NotNull;
+import jakarta.validation.constraints.NotNull;
 
 @Getter
 @Setter
diff --git a/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/user/UserPasswordDto.java b/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/user/UserPasswordDto.java
index b5c70ad502..34926e85f5 100644
--- a/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/user/UserPasswordDto.java
+++ b/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/user/UserPasswordDto.java
@@ -2,7 +2,7 @@ package at.tuwien.api.user;
 
 import lombok.*;
 
-import javax.validation.constraints.NotNull;
+import jakarta.validation.constraints.NotNull;
 
 @Getter
 @Setter
diff --git a/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/user/UserResetDto.java b/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/user/UserResetDto.java
index 938d38ae5d..9c00094f82 100644
--- a/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/user/UserResetDto.java
+++ b/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/user/UserResetDto.java
@@ -2,7 +2,7 @@ package at.tuwien.api.user;
 
 import lombok.*;
 
-import javax.validation.constraints.NotNull;
+import jakarta.validation.constraints.NotNull;
 
 @Getter
 @Setter
diff --git a/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/user/UserRolesDto.java b/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/user/UserRolesDto.java
index df58450072..b33182c99e 100644
--- a/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/user/UserRolesDto.java
+++ b/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/user/UserRolesDto.java
@@ -2,7 +2,7 @@ package at.tuwien.api.user;
 
 import lombok.*;
 
-import javax.validation.constraints.NotNull;
+import jakarta.validation.constraints.NotNull;
 import java.util.List;
 
 @Getter
diff --git a/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/user/UserThemeSetDto.java b/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/user/UserThemeSetDto.java
index ab700636b8..2ebf9bd4f2 100644
--- a/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/user/UserThemeSetDto.java
+++ b/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/user/UserThemeSetDto.java
@@ -4,7 +4,7 @@ import com.fasterxml.jackson.annotation.JsonProperty;
 import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.*;
 
-import javax.validation.constraints.NotNull;
+import jakarta.validation.constraints.NotNull;
 
 @Getter
 @Setter
diff --git a/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/user/UserUpdatePermissionsDto.java b/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/user/UserUpdatePermissionsDto.java
index dc6b9e44f3..6c69d5bc68 100644
--- a/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/user/UserUpdatePermissionsDto.java
+++ b/dbrepo-metadata-db/api/src/main/java/at/tuwien/api/user/UserUpdatePermissionsDto.java
@@ -3,7 +3,7 @@ package at.tuwien.api.user;
 import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.*;
 
-import javax.validation.constraints.NotBlank;
+import jakarta.validation.constraints.NotBlank;
 
 @Getter
 @Setter
diff --git a/dbrepo-metadata-db/entities/src/main/java/at/tuwien/entities/container/Container.java b/dbrepo-metadata-db/entities/src/main/java/at/tuwien/entities/container/Container.java
index c2e510881d..bcbfa6aff0 100644
--- a/dbrepo-metadata-db/entities/src/main/java/at/tuwien/entities/container/Container.java
+++ b/dbrepo-metadata-db/entities/src/main/java/at/tuwien/entities/container/Container.java
@@ -3,15 +3,13 @@ package at.tuwien.entities.container;
 import at.tuwien.entities.container.image.ContainerImage;
 import at.tuwien.entities.database.Database;
 import at.tuwien.entities.user.User;
-import com.github.dockerjava.api.model.HealthCheck;
+import jakarta.persistence.*;
 import lombok.*;
 import org.hibernate.annotations.GenericGenerator;
-import org.hibernate.annotations.Type;
 import org.springframework.data.annotation.CreatedDate;
 import org.springframework.data.annotation.LastModifiedDate;
 import org.springframework.data.jpa.domain.support.AuditingEntityListener;
 
-import javax.persistence.*;
 import java.time.Instant;
 import java.util.UUID;
 
@@ -35,7 +33,6 @@ public class Container {
 
     @ToString.Exclude
     @Column(name = "createdBy", nullable = false, columnDefinition = "VARCHAR(36)")
-    @Type(type = "uuid-char")
     private UUID createdBy;
 
     @ManyToOne(fetch = FetchType.LAZY, cascade = CascadeType.PERSIST)
@@ -46,7 +43,6 @@ public class Container {
 
     @ToString.Exclude
     @Column(name = "ownedBy", nullable = false, columnDefinition = "VARCHAR(36)")
-    @Type(type = "uuid-char")
     private UUID ownedBy;
 
     @ManyToOne(fetch = FetchType.LAZY, cascade = CascadeType.PERSIST)
diff --git a/dbrepo-metadata-db/entities/src/main/java/at/tuwien/entities/container/image/ContainerImage.java b/dbrepo-metadata-db/entities/src/main/java/at/tuwien/entities/container/image/ContainerImage.java
index 5708abaf35..b359185f8a 100644
--- a/dbrepo-metadata-db/entities/src/main/java/at/tuwien/entities/container/image/ContainerImage.java
+++ b/dbrepo-metadata-db/entities/src/main/java/at/tuwien/entities/container/image/ContainerImage.java
@@ -1,13 +1,13 @@
 package at.tuwien.entities.container.image;
 
 import at.tuwien.entities.container.Container;
+import jakarta.persistence.*;
 import lombok.*;
 import org.hibernate.annotations.GenericGenerator;
 import org.springframework.data.annotation.CreatedDate;
 import org.springframework.data.annotation.LastModifiedDate;
 import org.springframework.data.jpa.domain.support.AuditingEntityListener;
 
-import javax.persistence.*;
 import java.time.Instant;
 import java.util.List;
 
diff --git a/dbrepo-metadata-db/entities/src/main/java/at/tuwien/entities/container/image/ContainerImageDate.java b/dbrepo-metadata-db/entities/src/main/java/at/tuwien/entities/container/image/ContainerImageDate.java
index d593a17e25..b68947339e 100644
--- a/dbrepo-metadata-db/entities/src/main/java/at/tuwien/entities/container/image/ContainerImageDate.java
+++ b/dbrepo-metadata-db/entities/src/main/java/at/tuwien/entities/container/image/ContainerImageDate.java
@@ -6,7 +6,7 @@ import org.hibernate.annotations.GenericGenerator;
 import org.springframework.data.annotation.CreatedDate;
 import org.springframework.data.jpa.domain.support.AuditingEntityListener;
 
-import javax.persistence.*;
+import jakarta.persistence.*;;
 import java.time.Instant;
 
 @Data
diff --git a/dbrepo-metadata-db/entities/src/main/java/at/tuwien/entities/container/image/ContainerImageEnvironmentItem.java b/dbrepo-metadata-db/entities/src/main/java/at/tuwien/entities/container/image/ContainerImageEnvironmentItem.java
index 8891b85f23..f567bdd190 100644
--- a/dbrepo-metadata-db/entities/src/main/java/at/tuwien/entities/container/image/ContainerImageEnvironmentItem.java
+++ b/dbrepo-metadata-db/entities/src/main/java/at/tuwien/entities/container/image/ContainerImageEnvironmentItem.java
@@ -6,7 +6,7 @@ import org.springframework.data.annotation.CreatedDate;
 import org.springframework.data.annotation.LastModifiedDate;
 import org.springframework.data.jpa.domain.support.AuditingEntityListener;
 
-import javax.persistence.*;
+import jakarta.persistence.*;;
 import java.time.Instant;
 
 @Data
diff --git a/dbrepo-metadata-db/entities/src/main/java/at/tuwien/entities/database/Database.java b/dbrepo-metadata-db/entities/src/main/java/at/tuwien/entities/database/Database.java
index 01c7386123..931638022d 100644
--- a/dbrepo-metadata-db/entities/src/main/java/at/tuwien/entities/database/Database.java
+++ b/dbrepo-metadata-db/entities/src/main/java/at/tuwien/entities/database/Database.java
@@ -10,9 +10,9 @@ import org.springframework.data.annotation.CreatedDate;
 import org.springframework.data.annotation.LastModifiedDate;
 import org.springframework.data.jpa.domain.support.AuditingEntityListener;
 
-import javax.persistence.*;
-import javax.persistence.CascadeType;
-import javax.persistence.Entity;
+import jakarta.persistence.*;;
+import jakarta.persistence.CascadeType;
+import jakarta.persistence.Entity;
 import java.io.Serializable;
 import java.time.Instant;
 import java.util.List;
@@ -25,7 +25,7 @@ import java.util.UUID;
 @AllArgsConstructor
 @NoArgsConstructor
 @EntityListeners(AuditingEntityListener.class)
-@javax.persistence.Table(name = "mdb_databases", uniqueConstraints = {
+@jakarta.persistence.Table(name = "mdb_databases", uniqueConstraints = {
         @UniqueConstraint(columnNames = {"id", "internalName"})
 })
 public class Database implements Serializable {
@@ -37,10 +37,8 @@ public class Database implements Serializable {
 
     @ToString.Exclude
     @Column(name = "created_by", nullable = false, columnDefinition = "VARCHAR(36)")
-    @Type(type = "uuid-char")
     private UUID createdBy;
 
-    @Type(type = "uuid-char")
     @ManyToOne(fetch = FetchType.LAZY, cascade = CascadeType.PERSIST)
     @JoinColumns({
             @JoinColumn(name = "created_by", referencedColumnName = "ID", insertable = false, updatable = false)
@@ -49,7 +47,6 @@ public class Database implements Serializable {
 
     @ToString.Exclude
     @Column(name = "owned_by", nullable = false, columnDefinition = "VARCHAR(36)")
-    @Type(type = "uuid-char")
     private UUID ownedBy;
 
     @ManyToOne(fetch = FetchType.LAZY, cascade = CascadeType.PERSIST)
@@ -80,10 +77,8 @@ public class Database implements Serializable {
 
     @ToString.Exclude
     @Column(name = "contact_person", nullable = false, columnDefinition = "VARCHAR(36)")
-    @Type(type = "uuid-char")
     private UUID contactPerson;
 
-    @Type(type = "uuid-char")
     @ManyToOne(fetch = FetchType.EAGER, cascade = CascadeType.PERSIST)
     @JoinColumns({
             @JoinColumn(name = "contact_person", referencedColumnName = "ID", updatable = false, insertable = false)
diff --git a/dbrepo-metadata-db/entities/src/main/java/at/tuwien/entities/database/DatabaseAccess.java b/dbrepo-metadata-db/entities/src/main/java/at/tuwien/entities/database/DatabaseAccess.java
index 19d71711fe..b3e2790399 100644
--- a/dbrepo-metadata-db/entities/src/main/java/at/tuwien/entities/database/DatabaseAccess.java
+++ b/dbrepo-metadata-db/entities/src/main/java/at/tuwien/entities/database/DatabaseAccess.java
@@ -6,7 +6,7 @@ import org.hibernate.annotations.Type;
 import org.springframework.data.annotation.CreatedDate;
 import org.springframework.data.jpa.domain.support.AuditingEntityListener;
 
-import javax.persistence.*;
+import jakarta.persistence.*;;
 import java.time.Instant;
 import java.util.UUID;
 
@@ -18,11 +18,10 @@ import java.util.UUID;
 @NoArgsConstructor
 @IdClass(DatabaseAccessKey.class)
 @EntityListeners(AuditingEntityListener.class)
-@javax.persistence.Table(name = "mdb_have_access")
+@jakarta.persistence.Table(name = "mdb_have_access")
 public class DatabaseAccess {
 
     @Id
-    @Type(type = "uuid-char")
     @EqualsAndHashCode.Include
     @Column(name = "user_id", updatable = false, columnDefinition = "VARCHAR(36)")
     private UUID huserid;
diff --git a/dbrepo-metadata-db/entities/src/main/java/at/tuwien/entities/database/License.java b/dbrepo-metadata-db/entities/src/main/java/at/tuwien/entities/database/License.java
index baad81f5a3..5159794d77 100644
--- a/dbrepo-metadata-db/entities/src/main/java/at/tuwien/entities/database/License.java
+++ b/dbrepo-metadata-db/entities/src/main/java/at/tuwien/entities/database/License.java
@@ -3,7 +3,7 @@ package at.tuwien.entities.database;
 import lombok.*;
 import org.springframework.data.jpa.domain.support.AuditingEntityListener;
 
-import javax.persistence.*;
+import jakarta.persistence.*;;
 
 @Data
 @Entity
@@ -12,7 +12,7 @@ import javax.persistence.*;
 @AllArgsConstructor
 @NoArgsConstructor
 @EntityListeners(AuditingEntityListener.class)
-@javax.persistence.Table(name = "mdb_licenses", uniqueConstraints = {
+@jakarta.persistence.Table(name = "mdb_licenses", uniqueConstraints = {
         @UniqueConstraint(columnNames = {"uri"})
 })
 public class License {
diff --git a/dbrepo-metadata-db/entities/src/main/java/at/tuwien/entities/database/View.java b/dbrepo-metadata-db/entities/src/main/java/at/tuwien/entities/database/View.java
index 90cca36bed..552052c5d9 100644
--- a/dbrepo-metadata-db/entities/src/main/java/at/tuwien/entities/database/View.java
+++ b/dbrepo-metadata-db/entities/src/main/java/at/tuwien/entities/database/View.java
@@ -5,13 +5,11 @@ import at.tuwien.entities.user.User;
 import lombok.*;
 import net.sf.jsqlparser.statement.select.FromItem;
 import org.hibernate.annotations.GenericGenerator;
-import org.hibernate.annotations.Type;
 import org.springframework.data.annotation.CreatedDate;
 import org.springframework.data.annotation.LastModifiedDate;
-import org.springframework.data.elasticsearch.annotations.Document;
 import org.springframework.data.jpa.domain.support.AuditingEntityListener;
 
-import javax.persistence.*;
+import jakarta.persistence.*;;
 import java.time.Instant;
 import java.util.List;
 import java.util.UUID;
@@ -24,7 +22,7 @@ import java.util.UUID;
 @NoArgsConstructor
 @IdClass(ViewKey.class)
 @EntityListeners(AuditingEntityListener.class)
-@javax.persistence.Table(name = "mdb_view")
+@jakarta.persistence.Table(name = "mdb_view")
 public class View {
 
     @Id
@@ -44,7 +42,6 @@ public class View {
 
     @ToString.Exclude
     @Column(name = "createdBy", nullable = false, columnDefinition = "VARCHAR(36)")
-    @Type(type = "uuid-char")
     private UUID createdBy;
 
     @ManyToOne(fetch = FetchType.LAZY, cascade = CascadeType.ALL)
diff --git a/dbrepo-metadata-db/entities/src/main/java/at/tuwien/entities/database/table/Table.java b/dbrepo-metadata-db/entities/src/main/java/at/tuwien/entities/database/table/Table.java
index 75b506a6c6..c6784ed1b5 100644
--- a/dbrepo-metadata-db/entities/src/main/java/at/tuwien/entities/database/table/Table.java
+++ b/dbrepo-metadata-db/entities/src/main/java/at/tuwien/entities/database/table/Table.java
@@ -11,7 +11,7 @@ import org.springframework.data.annotation.CreatedDate;
 import org.springframework.data.annotation.LastModifiedDate;
 import org.springframework.data.jpa.domain.support.AuditingEntityListener;
 
-import javax.persistence.*;
+import jakarta.persistence.*;;
 import java.time.Instant;
 import java.util.List;
 
@@ -23,7 +23,7 @@ import java.util.List;
 @NoArgsConstructor
 @EntityListeners(AuditingEntityListener.class)
 @IdClass(TableKey.class)
-@javax.persistence.Table(name = "mdb_tables", uniqueConstraints = {
+@jakarta.persistence.Table(name = "mdb_tables", uniqueConstraints = {
         @UniqueConstraint(columnNames = {"tdbid", "internalName"})
 })
 public class Table {
diff --git a/dbrepo-metadata-db/entities/src/main/java/at/tuwien/entities/database/table/columns/TableColumn.java b/dbrepo-metadata-db/entities/src/main/java/at/tuwien/entities/database/table/columns/TableColumn.java
index 02ad037bd6..e90d48e921 100644
--- a/dbrepo-metadata-db/entities/src/main/java/at/tuwien/entities/database/table/columns/TableColumn.java
+++ b/dbrepo-metadata-db/entities/src/main/java/at/tuwien/entities/database/table/columns/TableColumn.java
@@ -11,7 +11,7 @@ import org.springframework.data.annotation.CreatedDate;
 import org.springframework.data.annotation.LastModifiedDate;
 import org.springframework.data.jpa.domain.support.AuditingEntityListener;
 
-import javax.persistence.*;
+import jakarta.persistence.*;;
 import java.time.Instant;
 import java.util.List;
 import java.util.UUID;
@@ -24,7 +24,7 @@ import java.util.UUID;
 @NoArgsConstructor
 @IdClass(TableColumnKey.class)
 @EntityListeners(AuditingEntityListener.class)
-@javax.persistence.Table(name = "mdb_columns", uniqueConstraints = {
+@jakarta.persistence.Table(name = "mdb_columns", uniqueConstraints = {
         @UniqueConstraint(columnNames = {"tid", "internalName"})
 })
 public class TableColumn implements Comparable<TableColumn> {
diff --git a/dbrepo-metadata-db/entities/src/main/java/at/tuwien/entities/database/table/columns/TableColumnConcept.java b/dbrepo-metadata-db/entities/src/main/java/at/tuwien/entities/database/table/columns/TableColumnConcept.java
index a06f93e2db..c90c1f9fef 100644
--- a/dbrepo-metadata-db/entities/src/main/java/at/tuwien/entities/database/table/columns/TableColumnConcept.java
+++ b/dbrepo-metadata-db/entities/src/main/java/at/tuwien/entities/database/table/columns/TableColumnConcept.java
@@ -4,7 +4,7 @@ import lombok.*;
 import org.springframework.data.annotation.CreatedDate;
 import org.springframework.data.jpa.domain.support.AuditingEntityListener;
 
-import javax.persistence.*;
+import jakarta.persistence.*;;
 import java.time.Instant;
 import java.util.List;
 
@@ -16,7 +16,7 @@ import java.util.List;
 @ToString
 @EntityListeners(AuditingEntityListener.class)
 @EqualsAndHashCode(onlyExplicitlyIncluded = true)
-@javax.persistence.Table(name = "mdb_concepts")
+@jakarta.persistence.Table(name = "mdb_concepts")
 public class TableColumnConcept {
 
     @Id
diff --git a/dbrepo-metadata-db/entities/src/main/java/at/tuwien/entities/database/table/columns/TableColumnUnit.java b/dbrepo-metadata-db/entities/src/main/java/at/tuwien/entities/database/table/columns/TableColumnUnit.java
index 114d08e789..2a64f611b2 100644
--- a/dbrepo-metadata-db/entities/src/main/java/at/tuwien/entities/database/table/columns/TableColumnUnit.java
+++ b/dbrepo-metadata-db/entities/src/main/java/at/tuwien/entities/database/table/columns/TableColumnUnit.java
@@ -4,7 +4,7 @@ import lombok.*;
 import org.springframework.data.annotation.CreatedDate;
 import org.springframework.data.jpa.domain.support.AuditingEntityListener;
 
-import javax.persistence.*;
+import jakarta.persistence.*;;
 import java.time.Instant;
 import java.util.List;
 
@@ -16,7 +16,7 @@ import java.util.List;
 @NoArgsConstructor
 @EntityListeners(AuditingEntityListener.class)
 @EqualsAndHashCode(onlyExplicitlyIncluded = true)
-@javax.persistence.Table(name = "mdb_units")
+@jakarta.persistence.Table(name = "mdb_units")
 public class TableColumnUnit {
 
     @Id
diff --git a/dbrepo-metadata-db/entities/src/main/java/at/tuwien/entities/database/table/constraints/Constraints.java b/dbrepo-metadata-db/entities/src/main/java/at/tuwien/entities/database/table/constraints/Constraints.java
index c2c5768a25..229b19ed64 100644
--- a/dbrepo-metadata-db/entities/src/main/java/at/tuwien/entities/database/table/constraints/Constraints.java
+++ b/dbrepo-metadata-db/entities/src/main/java/at/tuwien/entities/database/table/constraints/Constraints.java
@@ -4,7 +4,7 @@ import at.tuwien.entities.database.table.constraints.foreignKey.ForeignKey;
 import at.tuwien.entities.database.table.constraints.unique.Unique;
 import lombok.*;
 
-import javax.persistence.*;
+import jakarta.persistence.*;;
 import java.util.List;
 import java.util.Set;
 
diff --git a/dbrepo-metadata-db/entities/src/main/java/at/tuwien/entities/database/table/constraints/foreignKey/ForeignKey.java b/dbrepo-metadata-db/entities/src/main/java/at/tuwien/entities/database/table/constraints/foreignKey/ForeignKey.java
index c68cc27851..af0b10ee74 100644
--- a/dbrepo-metadata-db/entities/src/main/java/at/tuwien/entities/database/table/constraints/foreignKey/ForeignKey.java
+++ b/dbrepo-metadata-db/entities/src/main/java/at/tuwien/entities/database/table/constraints/foreignKey/ForeignKey.java
@@ -5,7 +5,7 @@ import lombok.*;
 import org.hibernate.annotations.GenericGenerator;
 import org.springframework.data.jpa.domain.support.AuditingEntityListener;
 
-import javax.persistence.*;
+import jakarta.persistence.*;;
 import java.util.List;
 
 @Data
@@ -16,7 +16,7 @@ import java.util.List;
 @ToString
 @EntityListeners(AuditingEntityListener.class)
 @EqualsAndHashCode(onlyExplicitlyIncluded = true)
-@javax.persistence.Table(name = "mdb_constraints_foreign_key")
+@jakarta.persistence.Table(name = "mdb_constraints_foreign_key")
 public class ForeignKey {
 
     @Id
diff --git a/dbrepo-metadata-db/entities/src/main/java/at/tuwien/entities/database/table/constraints/foreignKey/ForeignKeyReference.java b/dbrepo-metadata-db/entities/src/main/java/at/tuwien/entities/database/table/constraints/foreignKey/ForeignKeyReference.java
index 892c07cc43..0f58ed6462 100644
--- a/dbrepo-metadata-db/entities/src/main/java/at/tuwien/entities/database/table/constraints/foreignKey/ForeignKeyReference.java
+++ b/dbrepo-metadata-db/entities/src/main/java/at/tuwien/entities/database/table/constraints/foreignKey/ForeignKeyReference.java
@@ -5,7 +5,7 @@ import lombok.*;
 import org.hibernate.annotations.GenericGenerator;
 import org.springframework.data.jpa.domain.support.AuditingEntityListener;
 
-import javax.persistence.*;
+import jakarta.persistence.*;;
 
 @Data
 @Entity
@@ -15,7 +15,7 @@ import javax.persistence.*;
 @ToString
 @EntityListeners(AuditingEntityListener.class)
 @EqualsAndHashCode(onlyExplicitlyIncluded = true)
-@javax.persistence.Table(name = "mdb_constraints_foreign_key_reference")
+@jakarta.persistence.Table(name = "mdb_constraints_foreign_key_reference")
 public class ForeignKeyReference {
 
     @Id
diff --git a/dbrepo-metadata-db/entities/src/main/java/at/tuwien/entities/database/table/constraints/unique/Unique.java b/dbrepo-metadata-db/entities/src/main/java/at/tuwien/entities/database/table/constraints/unique/Unique.java
index 7be883b78e..792c57dbaa 100644
--- a/dbrepo-metadata-db/entities/src/main/java/at/tuwien/entities/database/table/constraints/unique/Unique.java
+++ b/dbrepo-metadata-db/entities/src/main/java/at/tuwien/entities/database/table/constraints/unique/Unique.java
@@ -6,7 +6,7 @@ import lombok.*;
 import org.hibernate.annotations.GenericGenerator;
 import org.springframework.data.jpa.domain.support.AuditingEntityListener;
 
-import javax.persistence.*;
+import jakarta.persistence.*;;
 import java.util.List;
 import java.util.Set;
 
@@ -18,7 +18,7 @@ import java.util.Set;
 @ToString
 @EntityListeners(AuditingEntityListener.class)
 @EqualsAndHashCode(onlyExplicitlyIncluded = true)
-@javax.persistence.Table(name = "mdb_constraints_unique")
+@jakarta.persistence.Table(name = "mdb_constraints_unique")
 public class Unique {
 
     @Id
diff --git a/dbrepo-metadata-db/entities/src/main/java/at/tuwien/entities/identifier/Creator.java b/dbrepo-metadata-db/entities/src/main/java/at/tuwien/entities/identifier/Creator.java
index 740fe5a4e5..91a68d69c8 100644
--- a/dbrepo-metadata-db/entities/src/main/java/at/tuwien/entities/identifier/Creator.java
+++ b/dbrepo-metadata-db/entities/src/main/java/at/tuwien/entities/identifier/Creator.java
@@ -8,7 +8,7 @@ import org.springframework.data.annotation.CreatedDate;
 import org.springframework.data.annotation.LastModifiedDate;
 import org.springframework.data.jpa.domain.support.AuditingEntityListener;
 
-import javax.persistence.*;
+import jakarta.persistence.*;;
 import java.time.Instant;
 import java.util.UUID;
 
diff --git a/dbrepo-metadata-db/entities/src/main/java/at/tuwien/entities/identifier/Identifier.java b/dbrepo-metadata-db/entities/src/main/java/at/tuwien/entities/identifier/Identifier.java
index 6210ab7c35..fd08d841d5 100644
--- a/dbrepo-metadata-db/entities/src/main/java/at/tuwien/entities/identifier/Identifier.java
+++ b/dbrepo-metadata-db/entities/src/main/java/at/tuwien/entities/identifier/Identifier.java
@@ -10,8 +10,8 @@ import org.springframework.data.annotation.CreatedDate;
 import org.springframework.data.annotation.LastModifiedDate;
 import org.springframework.data.jpa.domain.support.AuditingEntityListener;
 
-import javax.persistence.*;
-import javax.validation.constraints.NotBlank;
+import jakarta.persistence.*;;
+import jakarta.validation.constraints.NotBlank;
 import java.io.Serializable;
 import java.time.Instant;
 import java.util.List;
@@ -23,7 +23,7 @@ import java.util.List;
 @AllArgsConstructor
 @NoArgsConstructor
 @EntityListeners(AuditingEntityListener.class)
-@javax.persistence.Table(name = "mdb_identifiers", uniqueConstraints = {
+@jakarta.persistence.Table(name = "mdb_identifiers", uniqueConstraints = {
         @UniqueConstraint(columnNames = {"qid", "cid", "dbid"})
 })
 public class Identifier implements Serializable {
diff --git a/dbrepo-metadata-db/entities/src/main/java/at/tuwien/entities/identifier/RelatedIdentifier.java b/dbrepo-metadata-db/entities/src/main/java/at/tuwien/entities/identifier/RelatedIdentifier.java
index 54b90615a7..47716154fe 100644
--- a/dbrepo-metadata-db/entities/src/main/java/at/tuwien/entities/identifier/RelatedIdentifier.java
+++ b/dbrepo-metadata-db/entities/src/main/java/at/tuwien/entities/identifier/RelatedIdentifier.java
@@ -10,7 +10,7 @@ import org.springframework.data.annotation.CreatedDate;
 import org.springframework.data.annotation.LastModifiedDate;
 import org.springframework.data.jpa.domain.support.AuditingEntityListener;
 
-import javax.persistence.*;
+import jakarta.persistence.*;;
 import java.time.Instant;
 import java.util.UUID;
 
diff --git a/dbrepo-metadata-db/entities/src/main/java/at/tuwien/entities/user/Credential.java b/dbrepo-metadata-db/entities/src/main/java/at/tuwien/entities/user/Credential.java
index 85dafd353d..e4080c44cb 100644
--- a/dbrepo-metadata-db/entities/src/main/java/at/tuwien/entities/user/Credential.java
+++ b/dbrepo-metadata-db/entities/src/main/java/at/tuwien/entities/user/Credential.java
@@ -5,7 +5,7 @@ import org.hibernate.annotations.GenericGenerator;
 import org.hibernate.annotations.Type;
 import org.springframework.data.jpa.domain.support.AuditingEntityListener;
 
-import javax.persistence.*;
+import jakarta.persistence.*;;
 import java.util.UUID;
 
 @Data
@@ -22,14 +22,12 @@ public class Credential {
     @Id
     @EqualsAndHashCode.Include
     @Column(name = "ID", nullable = false, columnDefinition = "VARCHAR(36)")
-    @Type(type = "uuid-char")
     private UUID id;
 
     @Column(nullable = false)
     private String type;
 
     @Column(name = "user_id", nullable = false, columnDefinition = "VARCHAR(36)")
-    @Type(type = "uuid-char")
     private UUID userId;
 
     @Column(nullable = false)
diff --git a/dbrepo-metadata-db/entities/src/main/java/at/tuwien/entities/user/Realm.java b/dbrepo-metadata-db/entities/src/main/java/at/tuwien/entities/user/Realm.java
index 3890974c2e..5c7816af6a 100644
--- a/dbrepo-metadata-db/entities/src/main/java/at/tuwien/entities/user/Realm.java
+++ b/dbrepo-metadata-db/entities/src/main/java/at/tuwien/entities/user/Realm.java
@@ -5,7 +5,7 @@ import org.hibernate.annotations.GenericGenerator;
 import org.hibernate.annotations.Immutable;
 import org.hibernate.annotations.Type;
 
-import javax.persistence.*;
+import jakarta.persistence.*;;
 import java.util.List;
 import java.util.UUID;
 
@@ -26,7 +26,6 @@ public class Realm {
     @Id
     @EqualsAndHashCode.Include
     @Column(name = "ID", nullable = false, columnDefinition = "VARCHAR(36)")
-    @Type(type = "uuid-char")
     private UUID id;
 
     @Column(nullable = false)
diff --git a/dbrepo-metadata-db/entities/src/main/java/at/tuwien/entities/user/Role.java b/dbrepo-metadata-db/entities/src/main/java/at/tuwien/entities/user/Role.java
index 17a0446bc8..e50a902bd0 100644
--- a/dbrepo-metadata-db/entities/src/main/java/at/tuwien/entities/user/Role.java
+++ b/dbrepo-metadata-db/entities/src/main/java/at/tuwien/entities/user/Role.java
@@ -2,10 +2,9 @@ package at.tuwien.entities.user;
 
 import lombok.*;
 import org.hibernate.annotations.Immutable;
-import org.hibernate.annotations.Type;
 import org.springframework.data.jpa.domain.support.AuditingEntityListener;
 
-import javax.persistence.*;
+import jakarta.persistence.*;;
 import java.util.List;
 import java.util.UUID;
 
@@ -24,14 +23,12 @@ public class Role {
     @Id
     @EqualsAndHashCode.Include
     @Column(name = "ID", nullable = false, columnDefinition = "VARCHAR(36)")
-    @Type(type = "uuid-char")
     private UUID id;
 
     @Column(name = "NAME", nullable = false)
     private String name;
 
     @Column(name = "REALM_ID", nullable = false, columnDefinition = "VARCHAR(36)")
-    @Type(type = "uuid-char")
     private UUID realmId;
 
     @ToString.Exclude
diff --git a/dbrepo-metadata-db/entities/src/main/java/at/tuwien/entities/user/RoleMapping.java b/dbrepo-metadata-db/entities/src/main/java/at/tuwien/entities/user/RoleMapping.java
index 08d5df4b4d..674b9b8608 100644
--- a/dbrepo-metadata-db/entities/src/main/java/at/tuwien/entities/user/RoleMapping.java
+++ b/dbrepo-metadata-db/entities/src/main/java/at/tuwien/entities/user/RoleMapping.java
@@ -1,10 +1,9 @@
 package at.tuwien.entities.user;
 
 import lombok.*;
-import org.hibernate.annotations.Type;
 import org.springframework.data.jpa.domain.support.AuditingEntityListener;
 
-import javax.persistence.*;
+import jakarta.persistence.*;;
 import java.util.UUID;
 
 @Data
@@ -24,13 +23,11 @@ public class RoleMapping {
     @Id
     @EqualsAndHashCode.Include
     @Column(name = "USER_ID", nullable = false, columnDefinition = "VARCHAR(36)")
-    @Type(type = "uuid-char")
     private UUID userId;
 
     @Id
     @EqualsAndHashCode.Include
     @Column(name = "ROLE_ID", nullable = false, columnDefinition = "VARCHAR(36)")
-    @Type(type = "uuid-char")
     private UUID roleId;
 
 }
diff --git a/dbrepo-metadata-db/entities/src/main/java/at/tuwien/entities/user/User.java b/dbrepo-metadata-db/entities/src/main/java/at/tuwien/entities/user/User.java
index 109e63b06d..bf12e29066 100644
--- a/dbrepo-metadata-db/entities/src/main/java/at/tuwien/entities/user/User.java
+++ b/dbrepo-metadata-db/entities/src/main/java/at/tuwien/entities/user/User.java
@@ -4,12 +4,10 @@ import at.tuwien.entities.container.Container;
 import at.tuwien.entities.database.Database;
 import at.tuwien.entities.identifier.Identifier;
 import lombok.*;
-import org.hibernate.annotations.GenericGenerator;
-import org.hibernate.annotations.Type;
 import org.springframework.data.jpa.domain.support.AuditingEntityListener;
 import org.springframework.security.core.Authentication;
 
-import javax.persistence.*;
+import jakarta.persistence.*;;
 import java.security.Principal;
 import java.util.List;
 import java.util.UUID;
@@ -36,7 +34,6 @@ public class User {
     @Id
     @EqualsAndHashCode.Include
     @Column(name = "ID", nullable = false, columnDefinition = "VARCHAR(36)")
-    @Type(type = "uuid-char")
     private UUID id;
 
     @Column(nullable = false)
@@ -49,7 +46,6 @@ public class User {
     private String lastname;
 
     @Column(name = "REALM_ID", columnDefinition = "VARCHAR(36)")
-    @Type(type = "uuid-char")
     private UUID realmId;
 
     @Column(nullable = false)
diff --git a/dbrepo-metadata-db/entities/src/main/java/at/tuwien/entities/user/UserAttribute.java b/dbrepo-metadata-db/entities/src/main/java/at/tuwien/entities/user/UserAttribute.java
index bbc19e8ef8..199dcdd149 100644
--- a/dbrepo-metadata-db/entities/src/main/java/at/tuwien/entities/user/UserAttribute.java
+++ b/dbrepo-metadata-db/entities/src/main/java/at/tuwien/entities/user/UserAttribute.java
@@ -1,11 +1,9 @@
 package at.tuwien.entities.user;
 
 import lombok.*;
-import org.hibernate.annotations.GenericGenerator;
-import org.hibernate.annotations.Type;
 import org.springframework.data.jpa.domain.support.AuditingEntityListener;
 
-import javax.persistence.*;
+import jakarta.persistence.*;;
 import java.util.UUID;
 
 @Data
@@ -22,12 +20,10 @@ public class UserAttribute {
     @Id
     @EqualsAndHashCode.Include
     @Column(name = "ID", nullable = false, columnDefinition = "VARCHAR(36)")
-    @Type(type = "uuid-char")
     private UUID id;
 
     @ToString.Exclude
     @Column(name = "USER_ID", nullable = false, columnDefinition = "VARCHAR(36)")
-    @Type(type = "uuid-char")
     private UUID userId;
 
     @Column(name = "NAME", nullable = false)
diff --git a/dbrepo-metadata-db/pom.xml b/dbrepo-metadata-db/pom.xml
index c7f3b2990d..924d8d9c07 100644
--- a/dbrepo-metadata-db/pom.xml
+++ b/dbrepo-metadata-db/pom.xml
@@ -5,7 +5,7 @@
     <parent>
         <groupId>org.springframework.boot</groupId>
         <artifactId>spring-boot-starter-parent</artifactId>
-        <version>2.4.3</version>
+        <version>3.0.6</version>
     </parent>
 
     <groupId>at.tuwien</groupId>
@@ -24,17 +24,12 @@
     </modules>
 
     <properties>
-        <java.version>11</java.version>
+        <java.version>17</java.version>
         <maven.compiler.source>${java.version}</maven.compiler.source>
         <maven.compiler.target>${java.version}</maven.compiler.target>
-        <spring-cloud.version>Hoxton.SR8</spring-cloud.version>
-        <mapstruct.version>1.4.2.Final</mapstruct.version>
         <docker.version>3.3.0</docker.version>
-        <testcontainers.version>1.15.2</testcontainers.version>
-        <swagger.version>2.1.7</swagger.version>
-        <springfox.version>3.0.0</springfox.version>
-        <jsql.version>3.1</jsql.version>
-        <jackson-datatype.version>2.13.3</jackson-datatype.version>
+        <jsql-parser.version>4.6</jsql-parser.version>
+        <jackson-datatype.version>2.15.0</jackson-datatype.version>
         <commons.version>2.11.0</commons.version>
     </properties>
 
@@ -52,11 +47,6 @@
             <artifactId>spring-boot-starter-data-jpa</artifactId>
         </dependency>
         <!-- DataSource -->
-        <dependency>
-            <groupId>org.postgresql</groupId>
-            <artifactId>postgresql</artifactId>
-            <scope>runtime</scope>
-        </dependency>
         <dependency>
             <groupId>org.springframework.data</groupId>
             <artifactId>spring-data-elasticsearch</artifactId>
@@ -82,7 +72,7 @@
         <dependency>
             <groupId>com.github.jsqlparser</groupId>
             <artifactId>jsqlparser</artifactId>
-            <version>${jsql.version}</version>
+            <version>${jsql-parser.version}</version>
         </dependency>
         <!-- IDE -->
         <dependency>
diff --git a/dbrepo-metadata-db/querystore/src/main/java/at/tuwien/querystore/Query.java b/dbrepo-metadata-db/querystore/src/main/java/at/tuwien/querystore/Query.java
index f589913ec3..e6925b48c5 100644
--- a/dbrepo-metadata-db/querystore/src/main/java/at/tuwien/querystore/Query.java
+++ b/dbrepo-metadata-db/querystore/src/main/java/at/tuwien/querystore/Query.java
@@ -4,20 +4,15 @@ import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.*;
 import org.hibernate.annotations.GenericGenerator;
 import org.springframework.data.annotation.CreatedDate;
-import org.springframework.data.annotation.LastModifiedDate;
 import org.springframework.data.jpa.domain.support.AuditingEntityListener;
 
-import javax.persistence.*;
-import javax.persistence.Column;
-import javax.persistence.Table;
+import jakarta.persistence.*;;
 import java.io.Serializable;
-import java.math.BigInteger;
 import java.time.Instant;
-import java.util.List;
 
 @Data
 @Entity
-@javax.persistence.Table(name = "qs_queries")
+@jakarta.persistence.Table(name = "qs_queries")
 @Builder
 @AllArgsConstructor
 @NoArgsConstructor
@@ -35,37 +30,37 @@ public class Query implements Serializable {
     )
     private Long id;
 
-    @javax.persistence.Column(nullable = false, columnDefinition = "TEXT")
+    @jakarta.persistence.Column(nullable = false, columnDefinition = "TEXT")
     @Schema(example = "SELECT `id` FROM `air_quality`")
     private String query;
 
-    @javax.persistence.Column(name = "query_normalized", columnDefinition = "TEXT")
+    @jakarta.persistence.Column(name = "query_normalized", columnDefinition = "TEXT")
     @Schema(example = "SELECT `id` FROM `air_quality`")
     private String queryNormalized;
 
-    @javax.persistence.Column(name = "query_hash", nullable = false)
+    @jakarta.persistence.Column(name = "query_hash", nullable = false)
     @Schema(example = "17e682f060b5f8e47ea04c5c4855908b0a5ad612022260fe50e11ecb0cc0ab76")
     private String queryHash;
 
-    @javax.persistence.Column(name = "result_hash")
+    @jakarta.persistence.Column(name = "result_hash")
     @Schema(example = "17e682f060b5f8e47ea04c5c4855908b0a5ad612022260fe50e11ecb0cc0ab76")
     private String resultHash;
 
-    @javax.persistence.Column(name = "result_number")
+    @jakarta.persistence.Column(name = "result_number")
     @Schema(example = "1")
     private Long resultNumber;
 
-    @javax.persistence.Column(nullable = false)
+    @jakarta.persistence.Column(nullable = false)
     private Boolean isPersisted;
 
-    @javax.persistence.Column(nullable = false, updatable = false)
+    @jakarta.persistence.Column(nullable = false, updatable = false)
     @CreatedDate
     private Instant created;
 
-    @javax.persistence.Column(nullable = false, updatable = false)
+    @jakarta.persistence.Column(nullable = false, updatable = false)
     private Instant executed;
 
-    @javax.persistence.Column(nullable = false)
+    @jakarta.persistence.Column(nullable = false)
     private String createdBy;
 
 }
diff --git a/dbrepo-metadata-db/test/src/main/java/at/tuwien/config/H2Utils.java b/dbrepo-metadata-db/test/src/main/java/at/tuwien/config/H2Utils.java
index 82ec75d14a..a1f0e6a838 100644
--- a/dbrepo-metadata-db/test/src/main/java/at/tuwien/config/H2Utils.java
+++ b/dbrepo-metadata-db/test/src/main/java/at/tuwien/config/H2Utils.java
@@ -6,7 +6,7 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
 import org.springframework.transaction.annotation.Transactional;
 
-import javax.persistence.EntityManager;
+import jakarta.persistence.EntityManager;
 import java.io.File;
 import java.io.IOException;
 import java.nio.charset.StandardCharsets;
-- 
GitLab