Skip to content

Commit 9b2032d

Browse files
committed
Replace JdbcRepositoryFactoryBean autowiring with RuntimeBeanReferences.
We now specify runtime bean references to qualify the desired mapping context type instead of using autowiring that can match the wrong mapping context. Closes #1143
1 parent 6b3819c commit 9b2032d

File tree

2 files changed

+8
-3
lines changed

2 files changed

+8
-3
lines changed

spring-data-jdbc/src/main/java/org/springframework/data/jdbc/repository/config/JdbcRepositoryConfigExtension.java

+8
Original file line numberDiff line numberDiff line change
@@ -21,8 +21,12 @@
2121
import java.util.Locale;
2222
import java.util.Optional;
2323

24+
import org.springframework.beans.factory.config.RuntimeBeanReference;
2425
import org.springframework.beans.factory.support.BeanDefinitionBuilder;
26+
import org.springframework.data.jdbc.core.convert.JdbcConverter;
27+
import org.springframework.data.jdbc.core.mapping.JdbcMappingContext;
2528
import org.springframework.data.jdbc.repository.support.JdbcRepositoryFactoryBean;
29+
import org.springframework.data.relational.core.dialect.Dialect;
2630
import org.springframework.data.relational.core.mapping.Table;
2731
import org.springframework.data.repository.config.RepositoryConfigurationExtensionSupport;
2832
import org.springframework.data.repository.config.RepositoryConfigurationSource;
@@ -74,6 +78,10 @@ public void postProcess(BeanDefinitionBuilder builder, RepositoryConfigurationSo
7478

7579
Optional<String> transactionManagerRef = source.getAttribute("transactionManagerRef");
7680
builder.addPropertyValue("transactionManager", transactionManagerRef.orElse(DEFAULT_TRANSACTION_MANAGER_BEAN_NAME));
81+
82+
builder.addPropertyValue("mappingContext", new RuntimeBeanReference(JdbcMappingContext.class));
83+
builder.addPropertyValue("dialect", new RuntimeBeanReference(Dialect.class));
84+
builder.addPropertyValue("converter", new RuntimeBeanReference(JdbcConverter.class));
7785
}
7886

7987
/**

spring-data-jdbc/src/main/java/org/springframework/data/jdbc/repository/support/JdbcRepositoryFactoryBean.java

-3
Original file line numberDiff line numberDiff line change
@@ -95,7 +95,6 @@ protected RepositoryFactorySupport doCreateRepositoryFactory() {
9595
return jdbcRepositoryFactory;
9696
}
9797

98-
@Autowired
9998
public void setMappingContext(RelationalMappingContext mappingContext) {
10099

101100
Assert.notNull(mappingContext, "MappingContext must not be null");
@@ -104,7 +103,6 @@ public void setMappingContext(RelationalMappingContext mappingContext) {
104103
this.mappingContext = mappingContext;
105104
}
106105

107-
@Autowired
108106
public void setDialect(Dialect dialect) {
109107

110108
Assert.notNull(dialect, "Dialect must not be null");
@@ -141,7 +139,6 @@ public void setJdbcOperations(NamedParameterJdbcOperations operations) {
141139
this.operations = operations;
142140
}
143141

144-
@Autowired
145142
public void setConverter(JdbcConverter converter) {
146143

147144
Assert.notNull(converter, "JdbcConverter must not be null");

0 commit comments

Comments
 (0)