fixed mapping of String to ObjectId for '_id' field

This commit is contained in:
Thomas Risberg
2010-12-02 08:18:19 -05:00
parent 4c096b041c
commit 38043d4ea6

View File

@@ -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);
}