Register BigDecimal and BigInteger as simple types to allow explicitly typed writes and register converters in the ConversionService directly to avoid forcing a specific type.
Revert BigDecimalRepresentation list change to use only one representation.
In a sense, we're aligning with MongoDB's driver behavior that BigDecimal now maps by default to Decimal128, while BigInteger requires explicit configuration.
Original Pull Request: #5051
pull/5056/head
Mark Paluch3 months agocommitted byChristoph Strobl
@ -1376,6 +1376,7 @@ public class MappingMongoConverter extends AbstractMongoConverter
@@ -1376,6 +1376,7 @@ public class MappingMongoConverter extends AbstractMongoConverter
if(typeHint!=null&&Object.class!=typeHint){
// TODO this is weird and leads to double-conversion in some cases, e.g. BigDecimal -> Decimal128 -> BigDecimal
@ -78,6 +81,12 @@ public class MongoCustomConversions extends org.springframework.data.convert.Cus
@@ -78,6 +81,12 @@ public class MongoCustomConversions extends org.springframework.data.convert.Cus
@ -101,7 +110,12 @@ public class MongoCustomConversions extends org.springframework.data.convert.Cus
@@ -101,7 +110,12 @@ public class MongoCustomConversions extends org.springframework.data.convert.Cus
@ -120,6 +134,12 @@ public class MongoCustomConversions extends org.springframework.data.convert.Cus
@@ -120,6 +134,12 @@ public class MongoCustomConversions extends org.springframework.data.convert.Cus
@ -155,7 +175,7 @@ public class MongoCustomConversions extends org.springframework.data.convert.Cus
@@ -155,7 +175,7 @@ public class MongoCustomConversions extends org.springframework.data.convert.Cus
@ -312,14 +332,14 @@ public class MongoCustomConversions extends org.springframework.data.convert.Cus
@@ -312,14 +332,14 @@ public class MongoCustomConversions extends org.springframework.data.convert.Cus
Assert.notEmpty(representations,"BigDecimalDataType must not be null");
this.bigDecimals=representations;
Assert.notNull(representation,"BigDecimalDataType must not be null");
this.bigDecimals=representation;
returnthis;
}
@ -365,7 +385,7 @@ public class MongoCustomConversions extends org.springframework.data.convert.Cus
@@ -365,7 +385,7 @@ public class MongoCustomConversions extends org.springframework.data.convert.Cus
@ -373,19 +393,24 @@ public class MongoCustomConversions extends org.springframework.data.convert.Cus
@@ -373,19 +393,24 @@ public class MongoCustomConversions extends org.springframework.data.convert.Cus
"No BigDecimal/BigInteger representation set. Choose 'BigDecimalRepresentation.DECIMAL128' or 'BigDecimalRepresentation.String' to store values in desired format.");
@ -397,7 +422,8 @@ public class MongoCustomConversions extends org.springframework.data.convert.Cus
@@ -397,7 +422,8 @@ public class MongoCustomConversions extends org.springframework.data.convert.Cus
@ -408,8 +434,10 @@ public class MongoCustomConversions extends org.springframework.data.convert.Cus
@@ -408,8 +434,10 @@ public class MongoCustomConversions extends org.springframework.data.convert.Cus
@ -418,6 +446,19 @@ public class MongoCustomConversions extends org.springframework.data.convert.Cus
@@ -418,6 +446,19 @@ public class MongoCustomConversions extends org.springframework.data.convert.Cus