Я использую Spring Data для Mongo в существующей базе данных. Предыдущее приложение использовало простые строки для идентификаторов вместо ObjectId.
Моя проблема в том, что Spring Data настаивает на преобразовании строк в ObjectId, что приводит к сбою всех запросов по идентификатору.
Например, когда я делаю repository.findOne('')
, выполняется запрос { "_id" : { "$oid" : "50cf9f34458cf91108ceb2b4"}}
, тогда как он должен быть { "_id" : "50cf9f34458cf91108ceb2b4" }
Есть ли способ избежать Spring Data для преобразования идентификаторов строк в ObjectId?
Спасибо!
Диего
String
вObjectId
. Если у вас естьString
значения для идентификаторов, которые можно преобразовать вObjectId
, поскольку MongoDB оптимизирован для использования с ними. Помимо этого, выполнение запроса также выполняет такое же сопоставление при выполнении запросов, поэтому вы не должны видеть поведение, которое вы видите в первую очередь. Не могли бы вы добавить класс домена, объявление репозитория (вашfindOne('')
не имеет особого смысла, как и клиентский код, пытающийся сохранить и прочитать объект? - person Oliver Drotbohm   schedule 15.01.2013