diff --git a/src/main/java/de/ozgcloud/admin/common/DtoService.java b/src/main/java/de/ozgcloud/admin/common/DtoService.java
index 7feaa87325896549ea0052c06d936c59452a6c51..6e260a3fb3ff15674ca5b88717426c40df1ec3ac 100644
--- a/src/main/java/de/ozgcloud/admin/common/DtoService.java
+++ b/src/main/java/de/ozgcloud/admin/common/DtoService.java
@@ -23,9 +23,16 @@
  */
 package de.ozgcloud.admin.common;
 
+import java.lang.annotation.ElementType;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.lang.annotation.Target;
+
 import org.springframework.stereotype.Service;
 
 @Service
+@Target(ElementType.TYPE)
+@Retention(RetentionPolicy.RUNTIME)
 public @interface DtoService {
 
 	String[] value();
diff --git a/src/main/java/de/ozgcloud/admin/reporting/AggregationMapping.java b/src/main/java/de/ozgcloud/admin/reporting/AggregationMapping.java
index dba1cf9fbab44be2716928751783371b192bbcd5..d923d2c01a69af97787af47de8444cab6d086dd4 100644
--- a/src/main/java/de/ozgcloud/admin/reporting/AggregationMapping.java
+++ b/src/main/java/de/ozgcloud/admin/reporting/AggregationMapping.java
@@ -42,13 +42,15 @@ import lombok.ToString;
 import lombok.extern.jackson.Jacksonized;
 
 @Document("settings")
-@TypeAlias("AggregationMapping")
+@TypeAlias(AggregationMapping.TYPE_ALIAS)
 @Jacksonized
 @Builder
 @Getter
 @ToString
 public class AggregationMapping {
 
+	public static final String TYPE_ALIAS = "AggregationMapping";
+
 	@Id
 	@JsonIgnore
 	private String id;
diff --git a/src/main/java/de/ozgcloud/admin/reporting/ReportingAggregationManagerSettingDtoService.java b/src/main/java/de/ozgcloud/admin/reporting/ReportingAggregationManagerSettingDtoService.java
index 62a6ab9bb76e94ab074be2c2aed1578ada674638..acb46bf40ebaf81a11b896ed6c2d55c7048f29e7 100644
--- a/src/main/java/de/ozgcloud/admin/reporting/ReportingAggregationManagerSettingDtoService.java
+++ b/src/main/java/de/ozgcloud/admin/reporting/ReportingAggregationManagerSettingDtoService.java
@@ -28,18 +28,20 @@ import java.util.stream.Stream;
 import de.ozgcloud.admin.common.DtoService;
 import de.ozgcloud.admin.common.SettingDtoService;
 import de.ozgcloud.admin.setting.SettingConstants;
+import de.ozgcloud.admin.setting.SettingRepository;
 import lombok.RequiredArgsConstructor;
 
 @RequiredArgsConstructor
 @DtoService(SettingConstants.AGGREGATION_MANAGER)
 class ReportingAggregationManagerSettingDtoService implements SettingDtoService {
 
-	private final AggregationMappingRepository repository;
 	private final AggregationMappingMapper mapper;
 
+	private final SettingRepository repository;
+
 	@Override
 	public ReportingAggregationManagerSettingDto getDataTransferObject() {
-		return mapToDto(repository.findAll().stream());
+		return mapToDto(repository.findByType("AggregationMapping", AggregationMapping.class));
 	}
 
 	ReportingAggregationManagerSettingDto mapToDto(Stream<AggregationMapping> settings) {
diff --git a/src/main/java/de/ozgcloud/admin/setting/SettingRepository.java b/src/main/java/de/ozgcloud/admin/setting/SettingRepository.java
index 1cfb2957c475cab3d49346738f0aa331f0428e9f..ddeeae9fd0a5cb80dec50bf3c9b5c41492318c3a 100644
--- a/src/main/java/de/ozgcloud/admin/setting/SettingRepository.java
+++ b/src/main/java/de/ozgcloud/admin/setting/SettingRepository.java
@@ -23,15 +23,25 @@
  */
 package de.ozgcloud.admin.setting;
 
+import java.util.List;
 import java.util.Optional;
+import java.util.stream.Stream;
 
 import org.springframework.data.mongodb.repository.MongoRepository;
+import org.springframework.data.mongodb.repository.Query;
 import org.springframework.data.rest.core.annotation.RepositoryRestResource;
 import org.springframework.security.access.annotation.Secured;
 
-@Secured("ROLE_ADMIN_ADMIN")
 @RepositoryRestResource(collectionResourceRel = SettingConstants.REL, path = SettingConstants.PATH)
-interface SettingRepository extends MongoRepository<Setting, String> {
+public interface SettingRepository extends MongoRepository<Setting, String> {
+
+	@Secured("ROLE_ADMIN_ADMIN")
+	@Override
+	@Query("{'_class': 'Setting'}")
+	List<Setting> findAll();
 
 	Optional<Setting> findOneByName(String name);
+
+	@Query("{'_class': ?0}")
+	<T> Stream<T> findByType(String typeName, Class<T> clazz);
 }
diff --git a/src/test/java/de/ozgcloud/admin/reporting/AggregationMappingTestFactory.java b/src/test/java/de/ozgcloud/admin/reporting/AggregationMappingTestFactory.java
index 4bdc208202b738229c2616a233d2db85f46dd7f2..5d41bec21628058b6a5f84ef2858746b1b348d26 100644
--- a/src/test/java/de/ozgcloud/admin/reporting/AggregationMappingTestFactory.java
+++ b/src/test/java/de/ozgcloud/admin/reporting/AggregationMappingTestFactory.java
@@ -28,7 +28,7 @@ import java.util.UUID;
 import de.ozgcloud.admin.reporting.AggregationMapping.FieldMapping;
 import de.ozgcloud.admin.reporting.AggregationMapping.FormIdentifier;
 
-class AggregationMappingTestFactory {
+public class AggregationMappingTestFactory {
 
 	public static final String ID = UUID.randomUUID().toString();
 	public static final String FORM_ENGINE_NAME = "A12";
diff --git a/src/test/java/de/ozgcloud/admin/reporting/ReportingAggregationManagerSettingDtoServiceTest.java b/src/test/java/de/ozgcloud/admin/reporting/ReportingAggregationManagerSettingDtoServiceTest.java
index dc5c554d9765b0390e5510f5efe99645c4152637..38b5d5e310295cecf06d3fd9d4ff723f14c00d54 100644
--- a/src/test/java/de/ozgcloud/admin/reporting/ReportingAggregationManagerSettingDtoServiceTest.java
+++ b/src/test/java/de/ozgcloud/admin/reporting/ReportingAggregationManagerSettingDtoServiceTest.java
@@ -27,7 +27,6 @@ import static org.assertj.core.api.Assertions.*;
 import static org.mockito.ArgumentMatchers.*;
 import static org.mockito.Mockito.*;
 
-import java.util.List;
 import java.util.stream.Stream;
 
 import org.junit.jupiter.api.BeforeEach;
@@ -39,6 +38,8 @@ import org.mockito.InjectMocks;
 import org.mockito.Mock;
 import org.mockito.Spy;
 
+import de.ozgcloud.admin.setting.SettingRepository;
+
 class ReportingAggregationManagerSettingDtoServiceTest {
 
 	@Spy
@@ -48,7 +49,7 @@ class ReportingAggregationManagerSettingDtoServiceTest {
 	@Mock
 	private AggregationMappingMapper mapper;
 	@Mock
-	private AggregationMappingRepository repository;
+	private SettingRepository repository;
 
 	@Nested
 	class TestMapToDto {
@@ -89,13 +90,13 @@ class ReportingAggregationManagerSettingDtoServiceTest {
 		void shouldCallRepository() {
 			service.getDataTransferObject();
 
-			verify(repository).findAll();
+			verify(repository).findByType(AggregationMapping.TYPE_ALIAS, AggregationMapping.class);
 		}
 
 		@Test
 		void shouldCallMapToDto() {
 			AggregationMapping mapping = AggregationMappingTestFactory.create();
-			when(repository.findAll()).thenReturn(List.of(mapping));
+			when(repository.findByType(any(), any())).thenReturn(Stream.of(mapping));
 
 			service.getDataTransferObject();
 
diff --git a/src/test/java/de/ozgcloud/admin/setting/SettingRepositoryITCase.java b/src/test/java/de/ozgcloud/admin/setting/SettingRepositoryITCase.java
index 649efee530e07449fe35fcae3a4138bf2ab74f22..4f7dc9e6b6b543a1c701b5c875cf70244600f442 100644
--- a/src/test/java/de/ozgcloud/admin/setting/SettingRepositoryITCase.java
+++ b/src/test/java/de/ozgcloud/admin/setting/SettingRepositoryITCase.java
@@ -32,33 +32,43 @@ import org.springframework.data.mongodb.core.MongoOperations;
 import org.springframework.security.test.context.support.WithMockUser;
 
 import de.ozgcloud.admin.common.user.UserRole;
+import de.ozgcloud.admin.reporting.AggregationMappingTestFactory;
 import de.ozgcloud.common.test.DataITCase;
 
 @DataITCase
 @WithMockUser(roles = UserRole.ADMIN_ADMIN)
 class SettingRepositoryITCase {
 
-	private static final String SETTING_NAME = "Name";
-
 	@Autowired
 	private MongoOperations mongoOperations;
 	@Autowired
 	private SettingRepository repository;
 
-	private Setting setting = SettingTestFactory.createBuilder()
-			.name(SETTING_NAME)
-			.build();
-
 	@Nested
 	class TestFindOneByName {
 		@Test
 		void shouldGetSavedData() {
 			mongoOperations.dropCollection(Setting.COLLECTION_NAME);
-			mongoOperations.save(setting);
+			mongoOperations.save(SettingTestFactory.create());
+
+			var settingFromDb = repository.findOneByName(SettingTestFactory.SETTING_NAME).get();
+
+			assertThat(settingFromDb).usingRecursiveComparison().ignoringFields("id").isEqualTo(SettingTestFactory.create());
+		}
+	}
+
+	@Nested
+	class TestFindByType {
+
+		@Test
+		void shouldReturnOnlySetting() {
+			mongoOperations.dropCollection(Setting.COLLECTION_NAME);
+			mongoOperations.save(SettingTestFactory.create());
+			mongoOperations.save(AggregationMappingTestFactory.create());
 
-			var settingFromDb = repository.findOneByName(SETTING_NAME).get();
+			var loaded = repository.findByType("Setting", Setting.class);
 
-			assertThat(settingFromDb).usingRecursiveComparison().isEqualTo(setting);
+			assertThat(loaded).hasSize(1).first().isInstanceOf(Setting.class);
 		}
 	}
 }
diff --git a/src/test/java/de/ozgcloud/admin/setting/SettingTestFactory.java b/src/test/java/de/ozgcloud/admin/setting/SettingTestFactory.java
index 07e9533f4895b545042a35186f8d96080dd14952..54c4ae3b42514c653e28615ccc8b54e0cbc5f7b3 100644
--- a/src/test/java/de/ozgcloud/admin/setting/SettingTestFactory.java
+++ b/src/test/java/de/ozgcloud/admin/setting/SettingTestFactory.java
@@ -27,12 +27,14 @@ import de.ozgcloud.common.test.TestUtils;
 
 public class SettingTestFactory {
 
+	static final String SETTING_NAME = "Name";
+
 	public static Setting create() {
 		return createBuilder().build();
 	}
 
 	public static Setting.SettingBuilder createBuilder() {
-		return Setting.builder();
+		return Setting.builder().name(SETTING_NAME);
 	}
 
 	public static String buildSettingJson(Setting setting, String settingBodyString) {