From eea838cbed786cc2dc11ca50c36db30ba3b90e14 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 5ce6d2c97..25342beec 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 c7e32e31f..59a7d9b1a 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 ca9107af0..48b9ee068 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 7017e0910..aef02ac67 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());