升级到Spring-boot 2后,如何使用两级参数更新查询注释?

时间:2019-06-12 11:20:22

标签: spring mongodb spring-data-mongodb querydsl

在spring-boot版本升级后,我无法在spring-data-mongodb存储库中@Query注释的mongodb请求中使用由点字符分隔的复杂2级参数。对于spring-boot 2,最好的方法是什么?如何通过最少的更改即可解决它?

将spring-boot库从v.1.5.6.RELEASE升级到2.1.5.RELEASE后出现问题。应用程序成功启动,但是在运行时对mongodb的请求中出现错误。

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

我希望返回找到的UserSubscription对象或null值(如spring-data-mongodb v.1.5.6中的那样)。但是在spring-data-mongodb v.2.1.5上我得到了错误: org.bson.json.JsonParseException:无效的JSON输入。位置:5。字符:“。”。

1 个答案:

答案 0 :(得分:0)

您确定_id.subscriberId是您在这里做什么?您的ID字段是一个复杂的对象吗?我认为您可能打算使用_id以外的其他方式?

不过,您应该可以将属性用引号引起来,以解决当前遇到的错误:

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