From d622065ee6ffdee69ab4285c5bdc5b9a86a91dec Mon Sep 17 00:00:00 2001 From: Mark Paluch Date: Wed, 21 Jul 2021 09:18:56 +0200 Subject: [PATCH] Deprecate R2dbcCustomConversions constructor taking Collection of converters. Creating R2dbcCustomConversions without a dialect or StoreConversions can easily lead to misconfiguration that isn't immediately obvious because of missing store simple types. We now deprecated the constructor and have added guidance on how to properly create R2dbcCustomConversions that is associated with a dialect. Closes #628 --- .../data/r2dbc/convert/MappingR2dbcConverter.java | 2 +- .../data/r2dbc/convert/R2dbcCustomConversions.java | 4 ++++ .../data/r2dbc/convert/MappingR2dbcConverterUnitTests.java | 3 ++- .../data/r2dbc/mapping/R2dbcMappingContextUnitTests.java | 2 +- 4 files changed, 8 insertions(+), 3 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 5ce6d2c..25342be 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(Collections.emptyList())); + super(context, new R2dbcCustomConversions(CustomConversions.StoreConversions.NONE, 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 c7e32e3..59a7d9b 100644 --- a/src/main/java/org/springframework/data/r2dbc/convert/R2dbcCustomConversions.java +++ b/src/main/java/org/springframework/data/r2dbc/convert/R2dbcCustomConversions.java @@ -41,7 +41,11 @@ public class R2dbcCustomConversions extends CustomConversions { * Create a new {@link R2dbcCustomConversions} instance registering the given converters. * * @param converters must not be {@literal null}. + * @deprecated since 1.3, use {@link #of(R2dbcDialect, Object...)} or + * {@link #R2dbcCustomConversions(StoreConversions, Collection)} directly to consider dialect-native + * simple types. Use {@link CustomConversions.StoreConversions#NONE} to omit store-specific converters. */ + @Deprecated public R2dbcCustomConversions(Collection converters) { super(new R2dbcCustomConversionsConfiguration(STORE_CONVERSIONS, appendOverrides(converters))); } diff --git a/src/test/java/org/springframework/data/r2dbc/convert/MappingR2dbcConverterUnitTests.java b/src/test/java/org/springframework/data/r2dbc/convert/MappingR2dbcConverterUnitTests.java index ca9107a..48b9ee0 100644 --- a/src/test/java/org/springframework/data/r2dbc/convert/MappingR2dbcConverterUnitTests.java +++ b/src/test/java/org/springframework/data/r2dbc/convert/MappingR2dbcConverterUnitTests.java @@ -41,6 +41,7 @@ import org.springframework.core.convert.converter.Converter; import org.springframework.dao.InvalidDataAccessApiUsageException; import org.springframework.data.annotation.Id; import org.springframework.data.annotation.Transient; +import org.springframework.data.convert.CustomConversions; import org.springframework.data.convert.ReadingConverter; import org.springframework.data.convert.WritingConverter; import org.springframework.data.r2dbc.mapping.OutboundRow; @@ -62,7 +63,7 @@ public class MappingR2dbcConverterUnitTests { @BeforeEach void before() { - R2dbcCustomConversions conversions = new R2dbcCustomConversions( + R2dbcCustomConversions conversions = new R2dbcCustomConversions(CustomConversions.StoreConversions.NONE, Arrays.asList(StringToMapConverter.INSTANCE, MapToStringConverter.INSTANCE, CustomConversionPersonToOutboundRowConverter.INSTANCE, RowToCustomConversionPerson.INSTANCE)); diff --git a/src/test/java/org/springframework/data/r2dbc/mapping/R2dbcMappingContextUnitTests.java b/src/test/java/org/springframework/data/r2dbc/mapping/R2dbcMappingContextUnitTests.java index 7017e09..aef02ac 100644 --- a/src/test/java/org/springframework/data/r2dbc/mapping/R2dbcMappingContextUnitTests.java +++ b/src/test/java/org/springframework/data/r2dbc/mapping/R2dbcMappingContextUnitTests.java @@ -45,7 +45,7 @@ public class R2dbcMappingContextUnitTests { @Test public void shouldCreateMetadataForConvertedTypes() { - R2dbcCustomConversions conversions = new R2dbcCustomConversions( + R2dbcCustomConversions conversions = new R2dbcCustomConversions(CustomConversions.StoreConversions.NONE, Arrays.asList(ConvertedEntityToRow.INSTANCE, RowToConvertedEntity.INSTANCE)); R2dbcMappingContext context = new R2dbcMappingContext(); context.setSimpleTypeHolder(conversions.getSimpleTypeHolder());