Как обновить существующие документы с информацией о типе Spring Data MongoDB после переименования типов?

Я использую mongodb с spring, и у меня есть несколько вложенных документов, полученных из одного базового класса, mongo использует свойство _class, чтобы узнать, в какой тип нужно преобразовать, но теперь я изменил имя пакета и коллекция все еще есть документы со старым именем пакета, как я могу сказать монго, какие пользовательские преобразования делать?


person jacob    schedule 04.03.2015    source источник


Ответы (1)


Прежде всего, в следующий раз, чтобы отделить ваше имя package/class от переменной _class, используйте аннотацию: @TypeAlias("name") на вашем pojo. тогда _class будет иметь значение "name"

На мой взгляд, самым простым решением является обновление вашего pojo с помощью TypeAlias и обновление поля _class вашей коллекции с его новым значением.

Прочитайте о Type mapping здесь: http://docs.spring.io/spring-data/data-mongodb/docs/current/reference/html/#mongo-template.type-mapping

person royB    schedule 04.03.2015
comment
Иногда вам нужно с @TypeAlias добавить @Document(collection="collectionName"), чтобы он работал. Я столкнулся с той же проблемой здесь - person Sylhare; 12.09.2019