From 50e48b570b3aae8a2b6577b76e4583733472e788 Mon Sep 17 00:00:00 2001 From: Thomas Risberg Date: Thu, 2 Dec 2010 08:25:35 -0500 Subject: [PATCH] added fallback to use String for non ObjectId type '_id' fields --- .../data/document/mongodb/SimpleMongoConverter.java | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) 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 636cadc01..1d67bef94 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 @@ -157,7 +157,15 @@ public class SimpleMongoConverter implements MongoConverter { 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)); + try { + ObjectId _id = new ObjectId((String)value); + writeValue(dbo, keyToUse, _id); + } + catch (IllegalArgumentException iae) { + logger.debug("Unable to convert the String " + value + + " to an ObjectId"); + writeValue(dbo, keyToUse, value); + } } else { writeValue(dbo, keyToUse, value);