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 52eac27c..4093455e 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 @@ -660,7 +660,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 c4c9d5cd..a11621ec 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 @@ -413,6 +413,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);