Обычно при использовании репозиториев пружинных данных необходим объект, в котором могут быть сохранены данные результатов, например, клиент в этом примере: https://spring.io/guides/gs/accessing-data-mongodb/.
В моем случае я пытаюсь использовать объект, который объявлен в другом проекте, который я импортирую, используя maven - назовем его MyDoc
.Объект имеет атрибут Long id
, в то время как документ в MongoDB имеет поле добавления _id
из типа ObjectId
.Это, кстати, так, потому что MongoDB служит архивом, и фактический id
из MyDoc не будет уникальным.
В классе обслуживания я затем использую этот MongoTemplate для выполнения запросов к базе данных следующим образом:
List<MyDoc> list = template.findAll(MyDoc.class, "DOCS");
org.springframework.core.convert.ConverterNotFoundException: No converter found capable of converting from type [org.bson.types.ObjectId] to type [java.lang.Long]
Как я могу преобразовать ObjectId в тип Long?
Альтернативно, я мог бы, конечно, использовать драйвер MongoDB Java, но я хотел уменьшить количество зависимостейподдерживать, поскольку драйвер MongoDB поставляется с зависимостью boot-starter-data-MongoDB, а также в конце концов надеется на более интуитивный способ взаимодействия с базой данных, как с хранилищами данных Spring.