diff --git a/spring-data-mongodb/src/main/java/org/springframework/data/document/mongodb/SimpleMongoConverter.java b/spring-data-mongodb/src/main/java/org/springframework/data/document/mongodb/SimpleMongoConverter.java index ab72b7812..636cadc01 100644 --- a/spring-data-mongodb/src/main/java/org/springframework/data/document/mongodb/SimpleMongoConverter.java +++ b/spring-data-mongodb/src/main/java/org/springframework/data/document/mongodb/SimpleMongoConverter.java @@ -151,12 +151,14 @@ public class SimpleMongoConverter implements MongoConverter { // if (isSimpleType(pd.getPropertyType())) { Object value = bw.getPropertyValue(pd.getName()); String keyToUse = ("id".equals(pd.getName()) ? "_id" : pd.getName()); - if (isValidProperty(pd)) { // TODO validate Enums... if (value != null && Enum.class.isAssignableFrom(pd.getPropertyType())) { writeValue(dbo, keyToUse, ((Enum)value).name()); } + else if (value != null && "_id".equals(keyToUse) && String.class.isAssignableFrom(pd.getPropertyType())) { + writeValue(dbo, keyToUse, new ObjectId((String)value)); + } else { writeValue(dbo, keyToUse, value); }