From a46b6751a52042a33a05c59ee6590f69e2b3c869 Mon Sep 17 00:00:00 2001 From: Mark Paluch Date: Thu, 22 Jul 2021 09:00:59 +0200 Subject: [PATCH] Polishing. Improve default converter setup by considering R2dbcCustomConversions.STORE_CONVERSIONS to register built-in converters in default configurations. See #612 --- .../data/r2dbc/convert/MappingR2dbcConverter.java | 2 +- .../data/r2dbc/convert/R2dbcCustomConversions.java | 2 +- .../query/StringBasedR2dbcQueryUnitTests.java | 10 ++++++---- 3 files changed, 8 insertions(+), 6 deletions(-) diff --git a/src/main/java/org/springframework/data/r2dbc/convert/MappingR2dbcConverter.java b/src/main/java/org/springframework/data/r2dbc/convert/MappingR2dbcConverter.java index 25342bee..d103f9e0 100644 --- a/src/main/java/org/springframework/data/r2dbc/convert/MappingR2dbcConverter.java +++ b/src/main/java/org/springframework/data/r2dbc/convert/MappingR2dbcConverter.java @@ -70,7 +70,7 @@ public class MappingR2dbcConverter extends BasicRelationalConverter implements R */ public MappingR2dbcConverter( MappingContext, ? extends RelationalPersistentProperty> context) { - super(context, new R2dbcCustomConversions(CustomConversions.StoreConversions.NONE, Collections.emptyList())); + super(context, new R2dbcCustomConversions(R2dbcCustomConversions.STORE_CONVERSIONS, Collections.emptyList())); } /** diff --git a/src/main/java/org/springframework/data/r2dbc/convert/R2dbcCustomConversions.java b/src/main/java/org/springframework/data/r2dbc/convert/R2dbcCustomConversions.java index 59a7d9b1..2a6092e1 100644 --- a/src/main/java/org/springframework/data/r2dbc/convert/R2dbcCustomConversions.java +++ b/src/main/java/org/springframework/data/r2dbc/convert/R2dbcCustomConversions.java @@ -24,7 +24,7 @@ public class R2dbcCustomConversions extends CustomConversions { public static final List STORE_CONVERTERS; - private static final StoreConversions STORE_CONVERSIONS; + public static final StoreConversions STORE_CONVERSIONS; static { diff --git a/src/test/java/org/springframework/data/r2dbc/repository/query/StringBasedR2dbcQueryUnitTests.java b/src/test/java/org/springframework/data/r2dbc/repository/query/StringBasedR2dbcQueryUnitTests.java index 29e4a1e1..dbf7217d 100644 --- a/src/test/java/org/springframework/data/r2dbc/repository/query/StringBasedR2dbcQueryUnitTests.java +++ b/src/test/java/org/springframework/data/r2dbc/repository/query/StringBasedR2dbcQueryUnitTests.java @@ -42,6 +42,7 @@ import org.springframework.data.projection.SpelAwareProxyProjectionFactory; import org.springframework.data.r2dbc.convert.MappingR2dbcConverter; import org.springframework.data.r2dbc.core.DefaultReactiveDataAccessStrategy; import org.springframework.data.r2dbc.core.R2dbcEntityOperations; +import org.springframework.data.r2dbc.core.R2dbcEntityTemplate; import org.springframework.data.r2dbc.core.ReactiveDataAccessStrategy; import org.springframework.data.r2dbc.dialect.PostgresDialect; import org.springframework.data.r2dbc.mapping.R2dbcMappingContext; @@ -54,6 +55,7 @@ import org.springframework.data.repository.core.support.AbstractRepositoryMetada import org.springframework.data.repository.query.Param; import org.springframework.data.repository.query.ReactiveQueryMethodEvaluationContextProvider; import org.springframework.expression.spel.standard.SpelExpressionParser; +import org.springframework.r2dbc.core.DatabaseClient; import org.springframework.r2dbc.core.Parameter; import org.springframework.r2dbc.core.PreparedOperation; import org.springframework.r2dbc.core.binding.BindTarget; @@ -216,8 +218,7 @@ public class StringBasedR2dbcQueryUnitTests { PreparedOperation stringQuery = query.createQuery(accessor).block(); - assertThat(stringQuery.get()) - .isEqualTo("SELECT * FROM person WHERE lastname = $1 and firstname = $2"); + assertThat(stringQuery.get()).isEqualTo("SELECT * FROM person WHERE lastname = $1 and firstname = $2"); stringQuery.bindTo(bindTarget); verify(bindTarget).bind(0, "White"); @@ -284,7 +285,7 @@ public class StringBasedR2dbcQueryUnitTests { assertThat(query.resolveResultType(query.getQueryMethod().getResultProcessor())).isEqualTo(PersonDto.class); } - @Test // gh-475 + @Test // gh-612 void selectsSimpleType() { MockRowMetadata metadata = MockRowMetadata.builder() @@ -296,9 +297,10 @@ public class StringBasedR2dbcQueryUnitTests { StatementRecorder recorder = StatementRecorder.newInstance(); recorder.addStubbing(s -> s.equals("SELECT MAX(DATE)"), result); - databaseClient = DatabaseClient.builder() // + DatabaseClient databaseClient = DatabaseClient.builder() // .connectionFactory(recorder) // .bindMarkers(PostgresDialect.INSTANCE.getBindMarkersFactory()).build(); + entityOperations = new R2dbcEntityTemplate(databaseClient, PostgresDialect.INSTANCE, converter); StringBasedR2dbcQuery query = getQueryMethod("findAllLocalDates");