diff --git a/src/main/java/org/springframework/data/couchbase/core/convert/MappingCouchbaseConverter.java b/src/main/java/org/springframework/data/couchbase/core/convert/MappingCouchbaseConverter.java index 2c1fb1c8..2ca3ea82 100644 --- a/src/main/java/org/springframework/data/couchbase/core/convert/MappingCouchbaseConverter.java +++ b/src/main/java/org/springframework/data/couchbase/core/convert/MappingCouchbaseConverter.java @@ -664,7 +664,7 @@ public class MappingCouchbaseConverter extends AbstractCouchbaseConverter Class elementType = element == null ? null : element.getClass(); if (elementType == null || conversions.isSimpleType(elementType)) { - target.put(element); + target.put(getPotentiallyConvertedSimpleWrite(element)); } else if (element instanceof Collection || elementType.isArray()) { target.put(writeCollectionInternal(asCollection(element), new CouchbaseList(conversions.getSimpleTypeHolder()), componentType)); } else { diff --git a/src/test/java/org/springframework/data/couchbase/core/mapping/MappingCouchbaseConverterTests.java b/src/test/java/org/springframework/data/couchbase/core/mapping/MappingCouchbaseConverterTests.java index e658c7a0..ecb35c2a 100644 --- a/src/test/java/org/springframework/data/couchbase/core/mapping/MappingCouchbaseConverterTests.java +++ b/src/test/java/org/springframework/data/couchbase/core/mapping/MappingCouchbaseConverterTests.java @@ -417,6 +417,9 @@ public class MappingCouchbaseConverterTests { mapOfValuesDoc.put("val1", valueStr); mapOfValuesDoc.put("val2", value2Str); source.put("mapOfValues", mapOfValuesDoc); + + assertEquals(((CouchbaseList)converted.getPayload().get("listOfValues")).get(0), valueStr); + assertEquals(((CouchbaseList)converted.getPayload().get("listOfValues")).get(1), value2Str); assertEquals(source.export().toString(), converted.export().toString()); CustomEntity readConverted = converter.read(CustomEntity.class, source);