升级到 spring 数据 mongodb 1.10.1 后,我在运行以下查询时遇到错误:
@Query("{$and :["
+ "{ $or : [ { $where: '?0 == null' } , { 'field1' : ?0 } ] },"
+ "{ $or : [ { $where: '?1 == null' } , { 'field2' : ?1 } ] },"
+ "]}")
public Page<Entity> findAll(String param1, String param2)
Run Code Online (Sandbox Code Playgroud)
检查错误我看到 where 子句中的参数没有被引用,结果我得到:
org.springframework.data.mongodb.UncategorizedMongoDbException:查询失败,错误代码为 139,错误消息为“ReferenceError: test_param_value 未定义”:
我在这里看到一些答案,推荐这种处理可选参数的方式((spring-data-mongo - 可选查询参数?)),但它不再有效,我似乎无法在发布更改日志中找到任何内容。