Как обновить аннотации запросов двухуровневыми параметрами после обновления до Spring-boot 2? - PullRequest
0 голосов
/ 12 июня 2019

Я не могу использовать сложные двухуровневые параметры, разделенные точкой, в запросах mongodb из аннотации @Query в репозиториях spring-data-mongodb после обновления версии весенней загрузки.Каков наилучший подход для Spring-Boot 2 и как я могу это исправить с минимальными изменениями?

Проблема появилась после обновления библиотек Spring-Boot с v.1.5.6.RELEASE до 2.1.5.RELEASE,Приложение успешно запускается, но при выполнении запросов к mongodb появляются ошибки.

@Query("{_id.subscriberId: ?0}")
UserSubscription findOneBySubscriberId(String subscriberId);

Я ожидаю возврата либо найденного объекта UserSubscription, либо нулевого значения (как в spring-data-mongodb v.1.5.6).Но на spring-data-mongodb v.2.1.5 я получаю сообщение об ошибке: org.bson.json.JsonParseException: Неверный ввод JSON.Позиция: 5. Символ: '.'.

1 Ответ

0 голосов
/ 12 июня 2019

Вы уверены, что _id.subscriberId это то, что вам делать здесь?Является ли ваше поле идентификатора сложным объектом?Я думаю, что, возможно, вы собираетесь использовать что-то другое, чем _id?

Однако вы должны иметь возможность заключить атрибут в кавычки, чтобы исправить ошибку, которую вы сейчас видите:

@Query("{_`id.subscriberId`: ?0}")
...