From 79b1a0c703605d97fc243dada2c5dd2d7445e5f0 Mon Sep 17 00:00:00 2001
From: Martin Weise <martin.weise@tuwien.ac.at>
Date: Tue, 17 Aug 2021 18:56:47 +0200
Subject: [PATCH] elastic search seems fixed

Former-commit-id: a09604e497b7401a712efee4ad2d1bc0834bc491
---
 fda-container-service/pom.xml                      |  4 ++++
 .../at/tuwien/FdaContainerManagingApplication.java |  4 +++-
 .../tuwien/endpoint/ContainerEndpointUnitTest.java |  2 +-
 .../at/tuwien/endpoint/ImageEndpointUnitTest.java  | 10 ----------
 .../service/ContainerServiceIntegrationTest.java   |  5 ++---
 .../tuwien/service/ContainerServiceUnitTest.java   |  4 ++--
 .../service/ImageServiceIntegrationTest.java       |  4 ++--
 .../at/tuwien/service/ImageServiceUnitTest.java    | 10 +---------
 .../repository/elastic/DatabaseRepository.java     |  9 +++++++++
 .../repository/{ => jpa}/ContainerRepository.java  |  2 +-
 .../repository/{ => jpa}/ImageRepository.java      |  2 +-
 .../java/at/tuwien/service/ContainerService.java   |  6 ++----
 .../main/java/at/tuwien/service/ImageService.java  |  6 ++----
 .../src/main/java/at/tuwien/entities/Database.java |  7 -------
 .../java/at/tuwien/entities/database/Database.java |  2 ++
 fda-metadata-db/pom.xml                            |  4 ++++
 fda-query-service/pom.xml                          |  4 ++++
 .../java/at/tuwien/FdaQueryServiceApplication.java |  4 +++-
 .../at/tuwien/service/QueryServiceUnitTest.java    |  2 +-
 .../repository/elastic/DatabaseRepository.java     |  9 +++++++++
 .../repository/{ => jpa}/DatabaseRepository.java   |  2 +-
 .../main/java/at/tuwien/service/QueryService.java  |  4 +---
 fda-table-service/pom.xml                          |  4 ++++
 .../java/at/tuwien/FdaTableServiceApplication.java |  4 +++-
 .../at/tuwien/endpoint/TableEndpointUnitTest.java  | 13 ++-----------
 .../tuwien/mapper/TableMapperIntegrationTest.java  |  7 ++-----
 .../service/ImportServiceIntegrationTest.java      | 14 ++++----------
 .../service/TableServiceIntegrationTest.java       | 14 ++++----------
 .../at/tuwien/service/TableServiceUnitTest.java    |  4 ++--
 .../repository/elastic/DatabaseRepository.java     |  9 +++++++++
 .../repository/{ => jpa}/ContainerRepository.java  |  2 +-
 .../repository/{ => jpa}/DatabaseRepository.java   |  2 +-
 .../repository/{ => jpa}/ImageRepository.java      |  2 +-
 .../repository/{ => jpa}/TableRepository.java      |  2 +-
 .../main/java/at/tuwien/service/DataService.java   |  6 ++----
 .../main/java/at/tuwien/service/TableService.java  |  5 ++---
 36 files changed, 93 insertions(+), 101 deletions(-)
 create mode 100644 fda-container-service/services/src/main/java/at/tuwien/repository/elastic/DatabaseRepository.java
 rename fda-container-service/services/src/main/java/at/tuwien/repository/{ => jpa}/ContainerRepository.java (93%)
 rename fda-container-service/services/src/main/java/at/tuwien/repository/{ => jpa}/ImageRepository.java (91%)
 delete mode 100644 fda-database-service/services/src/main/java/at/tuwien/entities/Database.java
 create mode 100644 fda-query-service/services/src/main/java/at/tuwien/repository/elastic/DatabaseRepository.java
 rename fda-query-service/services/src/main/java/at/tuwien/repository/{ => jpa}/DatabaseRepository.java (88%)
 create mode 100644 fda-table-service/services/src/main/java/at/tuwien/repository/elastic/DatabaseRepository.java
 rename fda-table-service/services/src/main/java/at/tuwien/repository/{ => jpa}/ContainerRepository.java (88%)
 rename fda-table-service/services/src/main/java/at/tuwien/repository/{ => jpa}/DatabaseRepository.java (88%)
 rename fda-table-service/services/src/main/java/at/tuwien/repository/{ => jpa}/ImageRepository.java (88%)
 rename fda-table-service/services/src/main/java/at/tuwien/repository/{ => jpa}/TableRepository.java (94%)

diff --git a/fda-container-service/pom.xml b/fda-container-service/pom.xml
index 77e5f15697..20746acbbd 100644
--- a/fda-container-service/pom.xml
+++ b/fda-container-service/pom.xml
@@ -56,6 +56,10 @@
             <groupId>org.springframework.boot</groupId>
             <artifactId>spring-boot-starter-data-jpa</artifactId>
         </dependency>
+        <dependency>
+            <groupId>org.springframework.data</groupId>
+            <artifactId>spring-data-elasticsearch</artifactId>
+        </dependency>
         <!-- Entity and API -->
         <dependency>
             <groupId>at.tuwien</groupId>
diff --git a/fda-container-service/rest-service/src/main/java/at/tuwien/FdaContainerManagingApplication.java b/fda-container-service/rest-service/src/main/java/at/tuwien/FdaContainerManagingApplication.java
index b00ea3d5c4..e8d21c944e 100644
--- a/fda-container-service/rest-service/src/main/java/at/tuwien/FdaContainerManagingApplication.java
+++ b/fda-container-service/rest-service/src/main/java/at/tuwien/FdaContainerManagingApplication.java
@@ -3,6 +3,7 @@ package at.tuwien;
 import org.springframework.boot.SpringApplication;
 import org.springframework.boot.autoconfigure.SpringBootApplication;
 import org.springframework.boot.autoconfigure.domain.EntityScan;
+import org.springframework.data.elasticsearch.repository.config.EnableElasticsearchRepositories;
 import org.springframework.data.jpa.repository.config.EnableJpaAuditing;
 import org.springframework.data.jpa.repository.config.EnableJpaRepositories;
 import springfox.documentation.oas.annotations.EnableOpenApi;
@@ -10,7 +11,8 @@ import springfox.documentation.oas.annotations.EnableOpenApi;
 @SpringBootApplication
 @EnableJpaAuditing
 @EnableOpenApi
-@EnableJpaRepositories(basePackages = {"at.tuwien.repository"})
+@EnableElasticsearchRepositories(basePackages = {"at.tuwien.repository.elastic"})
+@EnableJpaRepositories(basePackages = {"at.tuwien.repository.jpa"})
 @EntityScan(basePackages = {"at.tuwien.entities"})
 public class FdaContainerManagingApplication {
 
diff --git a/fda-container-service/rest-service/src/test/java/at/tuwien/endpoint/ContainerEndpointUnitTest.java b/fda-container-service/rest-service/src/test/java/at/tuwien/endpoint/ContainerEndpointUnitTest.java
index ca0f636907..e88cec86ea 100644
--- a/fda-container-service/rest-service/src/test/java/at/tuwien/endpoint/ContainerEndpointUnitTest.java
+++ b/fda-container-service/rest-service/src/test/java/at/tuwien/endpoint/ContainerEndpointUnitTest.java
@@ -4,7 +4,7 @@ import at.tuwien.BaseUnitTest;
 import at.tuwien.api.container.*;
 import at.tuwien.endpoints.ContainerEndpoint;
 import at.tuwien.exception.*;
-import at.tuwien.repository.ImageRepository;
+import at.tuwien.repository.jpa.ImageRepository;
 import at.tuwien.service.ContainerService;
 import com.github.dockerjava.api.DockerClient;
 import org.junit.jupiter.api.Disabled;
diff --git a/fda-container-service/rest-service/src/test/java/at/tuwien/endpoint/ImageEndpointUnitTest.java b/fda-container-service/rest-service/src/test/java/at/tuwien/endpoint/ImageEndpointUnitTest.java
index f72b9fe08d..b2cf484352 100644
--- a/fda-container-service/rest-service/src/test/java/at/tuwien/endpoint/ImageEndpointUnitTest.java
+++ b/fda-container-service/rest-service/src/test/java/at/tuwien/endpoint/ImageEndpointUnitTest.java
@@ -1,20 +1,13 @@
 package at.tuwien.endpoint;
 
 import at.tuwien.BaseUnitTest;
-import at.tuwien.api.container.*;
 import at.tuwien.api.container.image.ImageBriefDto;
 import at.tuwien.api.container.image.ImageChangeDto;
 import at.tuwien.api.container.image.ImageCreateDto;
 import at.tuwien.api.container.image.ImageDto;
-import at.tuwien.endpoints.ContainerEndpoint;
 import at.tuwien.endpoints.ImageEndpoint;
-import at.tuwien.entities.container.image.ContainerImage;
 import at.tuwien.exception.*;
-import at.tuwien.repository.ImageRepository;
-import at.tuwien.service.ContainerService;
 import at.tuwien.service.ImageService;
-import com.github.dockerjava.api.DockerClient;
-import org.junit.jupiter.api.Disabled;
 import org.junit.jupiter.api.Test;
 import org.junit.jupiter.api.extension.ExtendWith;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -24,11 +17,8 @@ import org.springframework.http.HttpStatus;
 import org.springframework.http.ResponseEntity;
 import org.springframework.test.context.junit.jupiter.SpringExtension;
 
-import javax.persistence.EntityNotFoundException;
-import java.awt.*;
 import java.util.List;
 import java.util.Objects;
-import java.util.Optional;
 
 import static org.junit.jupiter.api.Assertions.assertEquals;
 import static org.junit.jupiter.api.Assertions.assertThrows;
diff --git a/fda-container-service/rest-service/src/test/java/at/tuwien/service/ContainerServiceIntegrationTest.java b/fda-container-service/rest-service/src/test/java/at/tuwien/service/ContainerServiceIntegrationTest.java
index adc106870a..162371f14b 100644
--- a/fda-container-service/rest-service/src/test/java/at/tuwien/service/ContainerServiceIntegrationTest.java
+++ b/fda-container-service/rest-service/src/test/java/at/tuwien/service/ContainerServiceIntegrationTest.java
@@ -5,8 +5,8 @@ import at.tuwien.api.container.ContainerCreateRequestDto;
 import at.tuwien.api.container.ContainerStateDto;
 import at.tuwien.entities.container.Container;
 import at.tuwien.exception.*;
-import at.tuwien.repository.ContainerRepository;
-import at.tuwien.repository.ImageRepository;
+import at.tuwien.repository.jpa.ContainerRepository;
+import at.tuwien.repository.jpa.ImageRepository;
 import com.github.dockerjava.api.DockerClient;
 import com.github.dockerjava.api.command.CreateContainerResponse;
 import com.github.dockerjava.api.exception.NotModifiedException;
@@ -22,7 +22,6 @@ import org.springframework.test.context.junit.jupiter.SpringExtension;
 
 import org.springframework.transaction.annotation.Transactional;
 import java.util.Arrays;
-import java.util.List;
 import java.util.Map;
 
 import static org.junit.jupiter.api.Assertions.*;
diff --git a/fda-container-service/rest-service/src/test/java/at/tuwien/service/ContainerServiceUnitTest.java b/fda-container-service/rest-service/src/test/java/at/tuwien/service/ContainerServiceUnitTest.java
index 325837a3a8..094b9f842e 100644
--- a/fda-container-service/rest-service/src/test/java/at/tuwien/service/ContainerServiceUnitTest.java
+++ b/fda-container-service/rest-service/src/test/java/at/tuwien/service/ContainerServiceUnitTest.java
@@ -7,8 +7,8 @@ import at.tuwien.exception.ContainerNotFoundException;
 import at.tuwien.exception.ContainerStillRunningException;
 import at.tuwien.exception.DockerClientException;
 import at.tuwien.exception.ImageNotFoundException;
-import at.tuwien.repository.ContainerRepository;
-import at.tuwien.repository.ImageRepository;
+import at.tuwien.repository.jpa.ContainerRepository;
+import at.tuwien.repository.jpa.ImageRepository;
 import com.github.dockerjava.api.DockerClient;
 import com.github.dockerjava.api.exception.ConflictException;
 import com.github.dockerjava.api.exception.NotFoundException;
diff --git a/fda-container-service/rest-service/src/test/java/at/tuwien/service/ImageServiceIntegrationTest.java b/fda-container-service/rest-service/src/test/java/at/tuwien/service/ImageServiceIntegrationTest.java
index 0475a834bc..6eabfe4db1 100644
--- a/fda-container-service/rest-service/src/test/java/at/tuwien/service/ImageServiceIntegrationTest.java
+++ b/fda-container-service/rest-service/src/test/java/at/tuwien/service/ImageServiceIntegrationTest.java
@@ -3,8 +3,8 @@ package at.tuwien.service;
 import at.tuwien.BaseUnitTest;
 import at.tuwien.api.container.image.ImageCreateDto;
 import at.tuwien.exception.*;
-import at.tuwien.repository.ContainerRepository;
-import at.tuwien.repository.ImageRepository;
+import at.tuwien.repository.jpa.ContainerRepository;
+import at.tuwien.repository.jpa.ImageRepository;
 import org.junit.jupiter.api.Test;
 import org.junit.jupiter.api.extension.ExtendWith;
 import org.springframework.beans.factory.annotation.Autowired;
diff --git a/fda-container-service/rest-service/src/test/java/at/tuwien/service/ImageServiceUnitTest.java b/fda-container-service/rest-service/src/test/java/at/tuwien/service/ImageServiceUnitTest.java
index c018a89a18..5e7a1c67de 100644
--- a/fda-container-service/rest-service/src/test/java/at/tuwien/service/ImageServiceUnitTest.java
+++ b/fda-container-service/rest-service/src/test/java/at/tuwien/service/ImageServiceUnitTest.java
@@ -1,20 +1,12 @@
 package at.tuwien.service;
 
 import at.tuwien.BaseUnitTest;
-import at.tuwien.api.container.ContainerCreateRequestDto;
 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.Container;
 import at.tuwien.entities.container.image.ContainerImage;
 import at.tuwien.exception.*;
-import at.tuwien.repository.ContainerRepository;
-import at.tuwien.repository.ImageRepository;
-import com.github.dockerjava.api.DockerClient;
-import com.github.dockerjava.api.exception.ConflictException;
-import com.github.dockerjava.api.exception.NotFoundException;
-import com.github.dockerjava.api.exception.NotModifiedException;
-import org.junit.jupiter.api.Disabled;
+import at.tuwien.repository.jpa.ImageRepository;
 import org.junit.jupiter.api.Test;
 import org.junit.jupiter.api.extension.ExtendWith;
 import org.springframework.beans.factory.annotation.Autowired;
diff --git a/fda-container-service/services/src/main/java/at/tuwien/repository/elastic/DatabaseRepository.java b/fda-container-service/services/src/main/java/at/tuwien/repository/elastic/DatabaseRepository.java
new file mode 100644
index 0000000000..aa60a6dbbc
--- /dev/null
+++ b/fda-container-service/services/src/main/java/at/tuwien/repository/elastic/DatabaseRepository.java
@@ -0,0 +1,9 @@
+package at.tuwien.repository.elastic;
+
+import at.tuwien.entities.database.Database;
+import org.springframework.data.elasticsearch.repository.ElasticsearchRepository;
+import org.springframework.stereotype.Repository;
+
+@Repository(value = "ElasticDatabaseService")
+public interface DatabaseRepository extends ElasticsearchRepository<Database, Long> {
+}
\ No newline at end of file
diff --git a/fda-container-service/services/src/main/java/at/tuwien/repository/ContainerRepository.java b/fda-container-service/services/src/main/java/at/tuwien/repository/jpa/ContainerRepository.java
similarity index 93%
rename from fda-container-service/services/src/main/java/at/tuwien/repository/ContainerRepository.java
rename to fda-container-service/services/src/main/java/at/tuwien/repository/jpa/ContainerRepository.java
index ecb94fbb56..7220b72a36 100644
--- a/fda-container-service/services/src/main/java/at/tuwien/repository/ContainerRepository.java
+++ b/fda-container-service/services/src/main/java/at/tuwien/repository/jpa/ContainerRepository.java
@@ -1,4 +1,4 @@
-package at.tuwien.repository;
+package at.tuwien.repository.jpa;
 
 import at.tuwien.entities.container.Container;
 import at.tuwien.entities.container.image.ContainerImage;
diff --git a/fda-container-service/services/src/main/java/at/tuwien/repository/ImageRepository.java b/fda-container-service/services/src/main/java/at/tuwien/repository/jpa/ImageRepository.java
similarity index 91%
rename from fda-container-service/services/src/main/java/at/tuwien/repository/ImageRepository.java
rename to fda-container-service/services/src/main/java/at/tuwien/repository/jpa/ImageRepository.java
index 7094708e79..ca60fb1a74 100644
--- a/fda-container-service/services/src/main/java/at/tuwien/repository/ImageRepository.java
+++ b/fda-container-service/services/src/main/java/at/tuwien/repository/jpa/ImageRepository.java
@@ -1,4 +1,4 @@
-package at.tuwien.repository;
+package at.tuwien.repository.jpa;
 
 import at.tuwien.entities.container.image.ContainerImage;
 import org.springframework.data.jpa.repository.JpaRepository;
diff --git a/fda-container-service/services/src/main/java/at/tuwien/service/ContainerService.java b/fda-container-service/services/src/main/java/at/tuwien/service/ContainerService.java
index 4468a293af..86567866a3 100644
--- a/fda-container-service/services/src/main/java/at/tuwien/service/ContainerService.java
+++ b/fda-container-service/services/src/main/java/at/tuwien/service/ContainerService.java
@@ -9,8 +9,8 @@ import at.tuwien.entities.container.image.ContainerImage;
 import at.tuwien.exception.*;
 import at.tuwien.mapper.ContainerMapper;
 import at.tuwien.mapper.ImageMapper;
-import at.tuwien.repository.ContainerRepository;
-import at.tuwien.repository.ImageRepository;
+import at.tuwien.repository.jpa.ContainerRepository;
+import at.tuwien.repository.jpa.ImageRepository;
 import com.github.dockerjava.api.DockerClient;
 import com.github.dockerjava.api.command.CreateContainerResponse;
 import com.github.dockerjava.api.command.InspectContainerResponse;
@@ -27,8 +27,6 @@ import org.springframework.util.SocketUtils;
 
 import org.springframework.transaction.annotation.Transactional;
 
-import java.io.IOException;
-import java.net.*;
 import java.time.Instant;
 import java.util.HashMap;
 import java.util.List;
diff --git a/fda-container-service/services/src/main/java/at/tuwien/service/ImageService.java b/fda-container-service/services/src/main/java/at/tuwien/service/ImageService.java
index 6bbf84dc4d..0f1aca1685 100644
--- a/fda-container-service/services/src/main/java/at/tuwien/service/ImageService.java
+++ b/fda-container-service/services/src/main/java/at/tuwien/service/ImageService.java
@@ -2,15 +2,14 @@ package at.tuwien.service;
 
 import at.tuwien.api.container.image.ImageChangeDto;
 import at.tuwien.api.container.image.ImageCreateDto;
-import at.tuwien.entities.container.Container;
 import at.tuwien.entities.container.image.ContainerImage;
 import at.tuwien.exception.DockerClientException;
 import at.tuwien.exception.ImageAlreadyExistsException;
 import at.tuwien.exception.ImageNotFoundException;
 import at.tuwien.exception.PersistenceException;
 import at.tuwien.mapper.ImageMapper;
-import at.tuwien.repository.ContainerRepository;
-import at.tuwien.repository.ImageRepository;
+import at.tuwien.repository.jpa.ContainerRepository;
+import at.tuwien.repository.jpa.ImageRepository;
 import com.github.dockerjava.api.DockerClient;
 import com.github.dockerjava.api.async.ResultCallback;
 import com.github.dockerjava.api.command.InspectImageResponse;
@@ -25,7 +24,6 @@ import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
 import javax.persistence.EntityNotFoundException;
-import javax.persistence.Persistence;
 import javax.validation.ConstraintViolationException;
 import java.time.Duration;
 import java.time.Instant;
diff --git a/fda-database-service/services/src/main/java/at/tuwien/entities/Database.java b/fda-database-service/services/src/main/java/at/tuwien/entities/Database.java
deleted file mode 100644
index 68f4983c5f..0000000000
--- a/fda-database-service/services/src/main/java/at/tuwien/entities/Database.java
+++ /dev/null
@@ -1,7 +0,0 @@
-package at.tuwien.entities;
-
-import org.springframework.data.elasticsearch.annotations.Document;
-
-@Document(indexName = "databaseindex")
-public class Database extends at.tuwien.entities.database.Database {
-}
diff --git a/fda-metadata-db/entities/src/main/java/at/tuwien/entities/database/Database.java b/fda-metadata-db/entities/src/main/java/at/tuwien/entities/database/Database.java
index 253d300676..b8b82717e6 100644
--- a/fda-metadata-db/entities/src/main/java/at/tuwien/entities/database/Database.java
+++ b/fda-metadata-db/entities/src/main/java/at/tuwien/entities/database/Database.java
@@ -6,6 +6,7 @@ import lombok.*;
 import org.hibernate.annotations.GenericGenerator;
 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.*;
@@ -17,6 +18,7 @@ import java.util.List;
 @Builder
 @AllArgsConstructor
 @NoArgsConstructor
+@Document(indexName = "databaseindex")
 @ToString(onlyExplicitlyIncluded = true)
 @EntityListeners(AuditingEntityListener.class)
 @EqualsAndHashCode(onlyExplicitlyIncluded = true)
diff --git a/fda-metadata-db/pom.xml b/fda-metadata-db/pom.xml
index 6a54bdda9b..f94d46424c 100644
--- a/fda-metadata-db/pom.xml
+++ b/fda-metadata-db/pom.xml
@@ -58,6 +58,10 @@
             <artifactId>postgresql</artifactId>
             <scope>runtime</scope>
         </dependency>
+        <dependency>
+            <groupId>org.springframework.data</groupId>
+            <artifactId>spring-data-elasticsearch</artifactId>
+        </dependency>
         <!-- IDE -->
         <dependency>
             <groupId>org.projectlombok</groupId>
diff --git a/fda-query-service/pom.xml b/fda-query-service/pom.xml
index 3747a474fe..2050b7b790 100644
--- a/fda-query-service/pom.xml
+++ b/fda-query-service/pom.xml
@@ -59,6 +59,10 @@
             <groupId>org.postgresql</groupId>
             <artifactId>postgresql</artifactId>
         </dependency>
+        <dependency>
+            <groupId>org.springframework.data</groupId>
+            <artifactId>spring-data-elasticsearch</artifactId>
+        </dependency>
         <!-- IDE -->
         <dependency>
             <groupId>org.projectlombok</groupId>
diff --git a/fda-query-service/rest-service/src/main/java/at/tuwien/FdaQueryServiceApplication.java b/fda-query-service/rest-service/src/main/java/at/tuwien/FdaQueryServiceApplication.java
index 857e6b34b2..3074ec598d 100644
--- a/fda-query-service/rest-service/src/main/java/at/tuwien/FdaQueryServiceApplication.java
+++ b/fda-query-service/rest-service/src/main/java/at/tuwien/FdaQueryServiceApplication.java
@@ -3,6 +3,7 @@ package at.tuwien;
 import org.springframework.boot.SpringApplication;
 import org.springframework.boot.autoconfigure.SpringBootApplication;
 import org.springframework.boot.autoconfigure.domain.EntityScan;
+import org.springframework.data.elasticsearch.repository.config.EnableElasticsearchRepositories;
 import org.springframework.data.jpa.repository.config.EnableJpaAuditing;
 import org.springframework.data.jpa.repository.config.EnableJpaRepositories;
 import org.springframework.transaction.annotation.EnableTransactionManagement;
@@ -14,7 +15,8 @@ import springfox.documentation.swagger2.annotations.EnableSwagger2;
 @SpringBootApplication
 @EnableTransactionManagement
 @EntityScan(basePackages = "at.tuwien.entities")
-@EnableJpaRepositories(basePackages = {"at.tuwien.repository"})
+@EnableElasticsearchRepositories(basePackages = {"at.tuwien.repository.elastic"})
+@EnableJpaRepositories(basePackages = {"at.tuwien.repository.jpa"})
 public class FdaQueryServiceApplication {
 
     public static void main(String[] args) {
diff --git a/fda-query-service/rest-service/src/test/java/at/tuwien/service/QueryServiceUnitTest.java b/fda-query-service/rest-service/src/test/java/at/tuwien/service/QueryServiceUnitTest.java
index 324be2c08d..98248fb8eb 100644
--- a/fda-query-service/rest-service/src/test/java/at/tuwien/service/QueryServiceUnitTest.java
+++ b/fda-query-service/rest-service/src/test/java/at/tuwien/service/QueryServiceUnitTest.java
@@ -6,7 +6,7 @@ import at.tuwien.exception.DatabaseConnectionException;
 import at.tuwien.exception.DatabaseNotFoundException;
 import at.tuwien.exception.ImageNotSupportedException;
 import at.tuwien.exception.QueryMalformedException;
-import at.tuwien.repository.DatabaseRepository;
+import at.tuwien.repository.jpa.DatabaseRepository;
 import org.junit.jupiter.api.Test;
 import org.junit.jupiter.api.extension.ExtendWith;
 import org.springframework.beans.factory.annotation.Autowired;
diff --git a/fda-query-service/services/src/main/java/at/tuwien/repository/elastic/DatabaseRepository.java b/fda-query-service/services/src/main/java/at/tuwien/repository/elastic/DatabaseRepository.java
new file mode 100644
index 0000000000..aa60a6dbbc
--- /dev/null
+++ b/fda-query-service/services/src/main/java/at/tuwien/repository/elastic/DatabaseRepository.java
@@ -0,0 +1,9 @@
+package at.tuwien.repository.elastic;
+
+import at.tuwien.entities.database.Database;
+import org.springframework.data.elasticsearch.repository.ElasticsearchRepository;
+import org.springframework.stereotype.Repository;
+
+@Repository(value = "ElasticDatabaseService")
+public interface DatabaseRepository extends ElasticsearchRepository<Database, Long> {
+}
\ No newline at end of file
diff --git a/fda-query-service/services/src/main/java/at/tuwien/repository/DatabaseRepository.java b/fda-query-service/services/src/main/java/at/tuwien/repository/jpa/DatabaseRepository.java
similarity index 88%
rename from fda-query-service/services/src/main/java/at/tuwien/repository/DatabaseRepository.java
rename to fda-query-service/services/src/main/java/at/tuwien/repository/jpa/DatabaseRepository.java
index 3ad63e9e3a..1d03fa3690 100644
--- a/fda-query-service/services/src/main/java/at/tuwien/repository/DatabaseRepository.java
+++ b/fda-query-service/services/src/main/java/at/tuwien/repository/jpa/DatabaseRepository.java
@@ -1,4 +1,4 @@
-package at.tuwien.repository;
+package at.tuwien.repository.jpa;
 
 import at.tuwien.entities.database.Database;
 import org.springframework.data.jpa.repository.JpaRepository;
diff --git a/fda-query-service/services/src/main/java/at/tuwien/service/QueryService.java b/fda-query-service/services/src/main/java/at/tuwien/service/QueryService.java
index e620b31868..59ef186ea0 100644
--- a/fda-query-service/services/src/main/java/at/tuwien/service/QueryService.java
+++ b/fda-query-service/services/src/main/java/at/tuwien/service/QueryService.java
@@ -1,6 +1,5 @@
 package at.tuwien.service;
 
-import at.tuwien.api.database.query.ExecuteQueryDto;
 import at.tuwien.api.database.query.QueryResultDto;
 import at.tuwien.entities.database.Database;
 import at.tuwien.entities.database.query.Query;
@@ -8,7 +7,7 @@ import at.tuwien.exception.DatabaseConnectionException;
 import at.tuwien.exception.DatabaseNotFoundException;
 import at.tuwien.exception.ImageNotSupportedException;
 import at.tuwien.exception.QueryMalformedException;
-import at.tuwien.repository.DatabaseRepository;
+import at.tuwien.repository.jpa.DatabaseRepository;
 import lombok.extern.log4j.Log4j2;
 import net.sf.jsqlparser.JSQLParserException;
 import net.sf.jsqlparser.parser.CCJSqlParserManager;
@@ -23,7 +22,6 @@ import org.springframework.transaction.annotation.Transactional;
 import javax.persistence.EntityNotFoundException;
 import java.io.StringReader;
 import java.sql.SQLFeatureNotSupportedException;
-import java.sql.SQLSyntaxErrorException;
 import java.sql.Timestamp;
 import java.util.List;
 import java.util.Optional;
diff --git a/fda-table-service/pom.xml b/fda-table-service/pom.xml
index 084fb670be..8a2ceab36f 100644
--- a/fda-table-service/pom.xml
+++ b/fda-table-service/pom.xml
@@ -72,6 +72,10 @@
             <groupId>org.postgresql</groupId>
             <artifactId>postgresql</artifactId>
         </dependency>
+        <dependency>
+            <groupId>org.springframework.data</groupId>
+            <artifactId>spring-data-elasticsearch</artifactId>
+        </dependency>
         <dependency>
             <groupId>org.mariadb.jdbc</groupId>
             <artifactId>mariadb-java-client</artifactId>
diff --git a/fda-table-service/rest-service/src/main/java/at/tuwien/FdaTableServiceApplication.java b/fda-table-service/rest-service/src/main/java/at/tuwien/FdaTableServiceApplication.java
index c3c1fbfeb1..90bb253a4c 100644
--- a/fda-table-service/rest-service/src/main/java/at/tuwien/FdaTableServiceApplication.java
+++ b/fda-table-service/rest-service/src/main/java/at/tuwien/FdaTableServiceApplication.java
@@ -3,6 +3,7 @@ package at.tuwien;
 import org.springframework.boot.SpringApplication;
 import org.springframework.boot.autoconfigure.SpringBootApplication;
 import org.springframework.boot.autoconfigure.domain.EntityScan;
+import org.springframework.data.elasticsearch.repository.config.EnableElasticsearchRepositories;
 import org.springframework.data.jpa.repository.config.EnableJpaAuditing;
 import org.springframework.data.jpa.repository.config.EnableJpaRepositories;
 import org.springframework.transaction.annotation.EnableTransactionManagement;
@@ -13,7 +14,8 @@ import springfox.documentation.oas.annotations.EnableOpenApi;
 @EnableJpaAuditing
 @EnableOpenApi
 @EnableTransactionManagement
-@EnableJpaRepositories(basePackages = {"at.tuwien.repository"})
+@EnableElasticsearchRepositories(basePackages = {"at.tuwien.repository.elastic"})
+@EnableJpaRepositories(basePackages = {"at.tuwien.repository.jpa"})
 @EntityScan(basePackages = {"at.tuwien.entities"})
 public class FdaTableServiceApplication {
 
diff --git a/fda-table-service/rest-service/src/test/java/at/tuwien/endpoint/TableEndpointUnitTest.java b/fda-table-service/rest-service/src/test/java/at/tuwien/endpoint/TableEndpointUnitTest.java
index b421f2f394..3b81852822 100644
--- a/fda-table-service/rest-service/src/test/java/at/tuwien/endpoint/TableEndpointUnitTest.java
+++ b/fda-table-service/rest-service/src/test/java/at/tuwien/endpoint/TableEndpointUnitTest.java
@@ -4,15 +4,11 @@ import at.tuwien.BaseUnitTest;
 import at.tuwien.api.database.table.TableBriefDto;
 import at.tuwien.api.database.table.TableCreateDto;
 import at.tuwien.api.database.table.TableDto;
-import at.tuwien.api.database.table.TableInsertDto;
 import at.tuwien.endpoints.TableEndpoint;
-import at.tuwien.entities.database.Database;
 import at.tuwien.exception.*;
-import at.tuwien.repository.DatabaseRepository;
-import at.tuwien.repository.TableRepository;
+import at.tuwien.repository.jpa.DatabaseRepository;
+import at.tuwien.repository.jpa.TableRepository;
 import at.tuwien.service.TableService;
-import com.opencsv.exceptions.CsvException;
-import org.junit.jupiter.api.Disabled;
 import org.junit.jupiter.api.Test;
 import org.junit.jupiter.api.extension.ExtendWith;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -20,13 +16,8 @@ import org.springframework.boot.test.context.SpringBootTest;
 import org.springframework.boot.test.mock.mockito.MockBean;
 import org.springframework.http.HttpStatus;
 import org.springframework.http.ResponseEntity;
-import org.springframework.mock.web.MockMultipartFile;
 import org.springframework.test.context.junit.jupiter.SpringExtension;
-import org.springframework.util.ResourceUtils;
 
-import java.io.IOException;
-import java.nio.file.Files;
-import java.sql.SQLException;
 import java.util.List;
 import java.util.Objects;
 import java.util.Optional;
diff --git a/fda-table-service/rest-service/src/test/java/at/tuwien/mapper/TableMapperIntegrationTest.java b/fda-table-service/rest-service/src/test/java/at/tuwien/mapper/TableMapperIntegrationTest.java
index c7a8d2dfeb..39b0a8c0e1 100644
--- a/fda-table-service/rest-service/src/test/java/at/tuwien/mapper/TableMapperIntegrationTest.java
+++ b/fda-table-service/rest-service/src/test/java/at/tuwien/mapper/TableMapperIntegrationTest.java
@@ -7,15 +7,14 @@ import at.tuwien.api.database.table.columns.ColumnTypeDto;
 import at.tuwien.exception.ArbitraryPrimaryKeysException;
 import at.tuwien.exception.ImageNotSupportedException;
 import at.tuwien.exception.TableMalformedException;
-import at.tuwien.repository.DatabaseRepository;
-import at.tuwien.repository.ImageRepository;
+import at.tuwien.repository.jpa.DatabaseRepository;
+import at.tuwien.repository.jpa.ImageRepository;
 import com.github.dockerjava.api.DockerClient;
 import com.github.dockerjava.api.command.CreateContainerResponse;
 import com.github.dockerjava.api.exception.NotModifiedException;
 import com.github.dockerjava.api.model.HostConfig;
 import com.github.dockerjava.api.model.PortBinding;
 import lombok.extern.log4j.Log4j2;
-import org.apache.commons.lang.SerializationUtils;
 import org.jooq.*;
 import org.jooq.impl.DSL;
 import org.junit.jupiter.api.AfterEach;
@@ -29,12 +28,10 @@ import org.springframework.test.annotation.DirtiesContext;
 import org.springframework.test.context.junit.jupiter.SpringExtension;
 import org.springframework.transaction.annotation.Transactional;
 
-import javax.validation.constraints.NotNull;
 import java.sql.Connection;
 import java.sql.DriverManager;
 import java.sql.SQLException;
 import java.util.*;
-import java.util.stream.Collectors;
 
 import static org.jooq.impl.DSL.table;
 import static org.junit.jupiter.api.Assertions.*;
diff --git a/fda-table-service/rest-service/src/test/java/at/tuwien/service/ImportServiceIntegrationTest.java b/fda-table-service/rest-service/src/test/java/at/tuwien/service/ImportServiceIntegrationTest.java
index acf9ce6b2b..29392ab82e 100644
--- a/fda-table-service/rest-service/src/test/java/at/tuwien/service/ImportServiceIntegrationTest.java
+++ b/fda-table-service/rest-service/src/test/java/at/tuwien/service/ImportServiceIntegrationTest.java
@@ -5,10 +5,10 @@ import at.tuwien.api.database.table.TableCreateDto;
 import at.tuwien.api.database.table.TableInsertDto;
 import at.tuwien.entities.database.table.Table;
 import at.tuwien.exception.*;
-import at.tuwien.repository.ContainerRepository;
-import at.tuwien.repository.DatabaseRepository;
-import at.tuwien.repository.ImageRepository;
-import at.tuwien.repository.TableRepository;
+import at.tuwien.repository.jpa.ContainerRepository;
+import at.tuwien.repository.jpa.DatabaseRepository;
+import at.tuwien.repository.jpa.ImageRepository;
+import at.tuwien.repository.jpa.TableRepository;
 import com.github.dockerjava.api.DockerClient;
 import com.github.dockerjava.api.command.CreateContainerResponse;
 import com.github.dockerjava.api.exception.NotModifiedException;
@@ -21,16 +21,10 @@ import org.junit.jupiter.api.Test;
 import org.junit.jupiter.api.extension.ExtendWith;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.boot.test.context.SpringBootTest;
-import org.springframework.mock.web.MockMultipartFile;
 import org.springframework.test.annotation.DirtiesContext;
 import org.springframework.test.context.junit.jupiter.SpringExtension;
 import org.springframework.transaction.annotation.Transactional;
-import org.springframework.util.ResourceUtils;
-import org.springframework.web.multipart.MultipartFile;
-import org.synchronoss.cloud.nio.multipart.Multipart;
 
-import java.io.IOException;
-import java.nio.file.Files;
 import java.util.Arrays;
 import java.util.Optional;
 
diff --git a/fda-table-service/rest-service/src/test/java/at/tuwien/service/TableServiceIntegrationTest.java b/fda-table-service/rest-service/src/test/java/at/tuwien/service/TableServiceIntegrationTest.java
index b22b55afff..6bf1fe24cd 100644
--- a/fda-table-service/rest-service/src/test/java/at/tuwien/service/TableServiceIntegrationTest.java
+++ b/fda-table-service/rest-service/src/test/java/at/tuwien/service/TableServiceIntegrationTest.java
@@ -2,13 +2,12 @@ package at.tuwien.service;
 
 import at.tuwien.BaseUnitTest;
 import at.tuwien.api.database.table.TableCreateDto;
-import at.tuwien.api.database.table.TableInsertDto;
 import at.tuwien.entities.database.table.Table;
 import at.tuwien.exception.*;
-import at.tuwien.repository.ContainerRepository;
-import at.tuwien.repository.DatabaseRepository;
-import at.tuwien.repository.ImageRepository;
-import at.tuwien.repository.TableRepository;
+import at.tuwien.repository.jpa.ContainerRepository;
+import at.tuwien.repository.jpa.DatabaseRepository;
+import at.tuwien.repository.jpa.ImageRepository;
+import at.tuwien.repository.jpa.TableRepository;
 import com.github.dockerjava.api.DockerClient;
 import com.github.dockerjava.api.command.CreateContainerResponse;
 import com.github.dockerjava.api.exception.NotModifiedException;
@@ -18,16 +17,11 @@ import org.junit.jupiter.api.*;
 import org.junit.jupiter.api.extension.ExtendWith;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.boot.test.context.SpringBootTest;
-import org.springframework.mock.web.MockMultipartFile;
 import org.springframework.test.annotation.DirtiesContext;
 import org.springframework.test.context.junit.jupiter.SpringExtension;
 import org.springframework.transaction.annotation.Transactional;
-import org.springframework.util.ResourceUtils;
 
-import java.io.IOException;
-import java.nio.file.Files;
 import java.util.Arrays;
-import java.util.Optional;
 
 import static org.junit.jupiter.api.Assertions.*;
 
diff --git a/fda-table-service/rest-service/src/test/java/at/tuwien/service/TableServiceUnitTest.java b/fda-table-service/rest-service/src/test/java/at/tuwien/service/TableServiceUnitTest.java
index 3d672928ce..0e8d160abe 100644
--- a/fda-table-service/rest-service/src/test/java/at/tuwien/service/TableServiceUnitTest.java
+++ b/fda-table-service/rest-service/src/test/java/at/tuwien/service/TableServiceUnitTest.java
@@ -5,8 +5,8 @@ import at.tuwien.api.database.table.TableCsvDto;
 import at.tuwien.api.database.table.TableInsertDto;
 import at.tuwien.entities.database.table.Table;
 import at.tuwien.exception.*;
-import at.tuwien.repository.DatabaseRepository;
-import at.tuwien.repository.TableRepository;
+import at.tuwien.repository.jpa.DatabaseRepository;
+import at.tuwien.repository.jpa.TableRepository;
 import com.opencsv.exceptions.CsvException;
 import org.junit.jupiter.api.BeforeAll;
 import org.junit.jupiter.api.Test;
diff --git a/fda-table-service/services/src/main/java/at/tuwien/repository/elastic/DatabaseRepository.java b/fda-table-service/services/src/main/java/at/tuwien/repository/elastic/DatabaseRepository.java
new file mode 100644
index 0000000000..aa60a6dbbc
--- /dev/null
+++ b/fda-table-service/services/src/main/java/at/tuwien/repository/elastic/DatabaseRepository.java
@@ -0,0 +1,9 @@
+package at.tuwien.repository.elastic;
+
+import at.tuwien.entities.database.Database;
+import org.springframework.data.elasticsearch.repository.ElasticsearchRepository;
+import org.springframework.stereotype.Repository;
+
+@Repository(value = "ElasticDatabaseService")
+public interface DatabaseRepository extends ElasticsearchRepository<Database, Long> {
+}
\ No newline at end of file
diff --git a/fda-table-service/services/src/main/java/at/tuwien/repository/ContainerRepository.java b/fda-table-service/services/src/main/java/at/tuwien/repository/jpa/ContainerRepository.java
similarity index 88%
rename from fda-table-service/services/src/main/java/at/tuwien/repository/ContainerRepository.java
rename to fda-table-service/services/src/main/java/at/tuwien/repository/jpa/ContainerRepository.java
index ae72a7d1fe..39566b1cc0 100644
--- a/fda-table-service/services/src/main/java/at/tuwien/repository/ContainerRepository.java
+++ b/fda-table-service/services/src/main/java/at/tuwien/repository/jpa/ContainerRepository.java
@@ -1,4 +1,4 @@
-package at.tuwien.repository;
+package at.tuwien.repository.jpa;
 
 import at.tuwien.entities.container.Container;
 import org.springframework.data.jpa.repository.JpaRepository;
diff --git a/fda-table-service/services/src/main/java/at/tuwien/repository/DatabaseRepository.java b/fda-table-service/services/src/main/java/at/tuwien/repository/jpa/DatabaseRepository.java
similarity index 88%
rename from fda-table-service/services/src/main/java/at/tuwien/repository/DatabaseRepository.java
rename to fda-table-service/services/src/main/java/at/tuwien/repository/jpa/DatabaseRepository.java
index 7ce19f928d..35ca349b07 100644
--- a/fda-table-service/services/src/main/java/at/tuwien/repository/DatabaseRepository.java
+++ b/fda-table-service/services/src/main/java/at/tuwien/repository/jpa/DatabaseRepository.java
@@ -1,4 +1,4 @@
-package at.tuwien.repository;
+package at.tuwien.repository.jpa;
 
 import at.tuwien.entities.database.Database;
 import org.springframework.data.jpa.repository.JpaRepository;
diff --git a/fda-table-service/services/src/main/java/at/tuwien/repository/ImageRepository.java b/fda-table-service/services/src/main/java/at/tuwien/repository/jpa/ImageRepository.java
similarity index 88%
rename from fda-table-service/services/src/main/java/at/tuwien/repository/ImageRepository.java
rename to fda-table-service/services/src/main/java/at/tuwien/repository/jpa/ImageRepository.java
index 92d114dece..247ce97770 100644
--- a/fda-table-service/services/src/main/java/at/tuwien/repository/ImageRepository.java
+++ b/fda-table-service/services/src/main/java/at/tuwien/repository/jpa/ImageRepository.java
@@ -1,4 +1,4 @@
-package at.tuwien.repository;
+package at.tuwien.repository.jpa;
 
 import at.tuwien.entities.container.image.ContainerImage;
 import org.springframework.data.jpa.repository.JpaRepository;
diff --git a/fda-table-service/services/src/main/java/at/tuwien/repository/TableRepository.java b/fda-table-service/services/src/main/java/at/tuwien/repository/jpa/TableRepository.java
similarity index 94%
rename from fda-table-service/services/src/main/java/at/tuwien/repository/TableRepository.java
rename to fda-table-service/services/src/main/java/at/tuwien/repository/jpa/TableRepository.java
index c65c8e38f9..ffecb43d93 100644
--- a/fda-table-service/services/src/main/java/at/tuwien/repository/TableRepository.java
+++ b/fda-table-service/services/src/main/java/at/tuwien/repository/jpa/TableRepository.java
@@ -1,4 +1,4 @@
-package at.tuwien.repository;
+package at.tuwien.repository.jpa;
 
 import at.tuwien.entities.database.Database;
 import at.tuwien.entities.database.table.Table;
diff --git a/fda-table-service/services/src/main/java/at/tuwien/service/DataService.java b/fda-table-service/services/src/main/java/at/tuwien/service/DataService.java
index 37c1fcd50f..7fe9023567 100644
--- a/fda-table-service/services/src/main/java/at/tuwien/service/DataService.java
+++ b/fda-table-service/services/src/main/java/at/tuwien/service/DataService.java
@@ -11,8 +11,8 @@ import at.tuwien.exception.*;
 import at.tuwien.mapper.ImageMapper;
 import at.tuwien.mapper.QueryMapper;
 import at.tuwien.mapper.TableMapper;
-import at.tuwien.repository.DatabaseRepository;
-import at.tuwien.repository.TableRepository;
+import at.tuwien.repository.jpa.DatabaseRepository;
+import at.tuwien.repository.jpa.TableRepository;
 import com.opencsv.CSVParser;
 import com.opencsv.CSVParserBuilder;
 import com.opencsv.CSVReader;
@@ -24,7 +24,6 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.mock.web.MockMultipartFile;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
-import org.springframework.util.ResourceUtils;
 import org.springframework.web.multipart.MultipartFile;
 
 import javax.persistence.EntityNotFoundException;
@@ -32,7 +31,6 @@ import java.io.IOException;
 import java.io.InputStreamReader;
 import java.io.Reader;
 import java.nio.file.Files;
-import java.nio.file.Path;
 import java.nio.file.Paths;
 import java.sql.SQLException;
 import java.util.*;
diff --git a/fda-table-service/services/src/main/java/at/tuwien/service/TableService.java b/fda-table-service/services/src/main/java/at/tuwien/service/TableService.java
index 7ea1bb33cd..0d50bff8d5 100644
--- a/fda-table-service/services/src/main/java/at/tuwien/service/TableService.java
+++ b/fda-table-service/services/src/main/java/at/tuwien/service/TableService.java
@@ -10,8 +10,8 @@ import at.tuwien.exception.*;
 import at.tuwien.mapper.ImageMapper;
 import at.tuwien.mapper.QueryMapper;
 import at.tuwien.mapper.TableMapper;
-import at.tuwien.repository.DatabaseRepository;
-import at.tuwien.repository.TableRepository;
+import at.tuwien.repository.jpa.DatabaseRepository;
+import at.tuwien.repository.jpa.TableRepository;
 import com.opencsv.CSVParser;
 import com.opencsv.CSVParserBuilder;
 import com.opencsv.CSVReader;
@@ -22,7 +22,6 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.web.multipart.MultipartFile;
-import org.synchronoss.cloud.nio.multipart.Multipart;
 
 import javax.persistence.EntityNotFoundException;
 import java.io.*;
-- 
GitLab