From efccf6d48038cd8622d77ddfb55a4ab018d5c49d Mon Sep 17 00:00:00 2001 From: Oliver Drotbohm Date: Tue, 15 Oct 2019 10:33:30 +0200 Subject: [PATCH] DATACMNS-1591 - @Primary is now considered on repository interfaces. We now elevate the primary annotation from the scanned repository bean definition to the one created for the repository factory. This previously got lost as the former is hidden behind the RepositoryConfiguration interface that previously didn't expose the primary nature of the underlying bean definition. Original pull request: #410. --- .../DefaultRepositoryConfiguration.java | 9 +++ .../config/RepositoryConfiguration.java | 7 +++ .../RepositoryConfigurationDelegate.java | 2 + .../PrimaryRepositoryIntegrationTests.java | 55 +++++++++++++++++++ 4 files changed, 73 insertions(+) create mode 100644 src/test/java/org/springframework/data/repository/config/PrimaryRepositoryIntegrationTests.java diff --git a/src/main/java/org/springframework/data/repository/config/DefaultRepositoryConfiguration.java b/src/main/java/org/springframework/data/repository/config/DefaultRepositoryConfiguration.java index 3129d8448..4edc5f3c7 100644 --- a/src/main/java/org/springframework/data/repository/config/DefaultRepositoryConfiguration.java +++ b/src/main/java/org/springframework/data/repository/config/DefaultRepositoryConfiguration.java @@ -205,4 +205,13 @@ public class DefaultRepositoryConfiguration context.getBean(FirstRepository.class)).doesNotThrowAnyException(); + } + + @Configuration + @EnableRepositories(considerNestedRepositories = true, // + includeFilters = @Filter(type = FilterType.ASSIGNABLE_TYPE, classes = Marker.class)) + static class Config {} + + interface Marker {} + + @Primary + interface FirstRepository extends CrudRepository, Marker {} + + interface SecondRepository extends FirstRepository, Marker {} +}