首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >由于以下n1ql错误,无法执行查询

由于以下n1ql错误,无法执行查询
EN

Stack Overflow用户
提问于 2020-04-11 15:06:21
回答 1查看 80关注 0票数 1

由于以下n1ql错误,我无法执行查询:

存储库查询:

代码语言:javascript
复制
public ClientMatrixFactorPopUp findBySupportedValuesAndRequestId(SortedMap supportedValues,Long requestId);

预期的N1QL:

代码语言:javascript
复制
SELECT * FROM b_factor
    WHERE  _class = "com.intervest.price.oxygen.model.ClientMatrixFactorPopUp" and requestId=21
    and supportedValues= { "BAGGAGE_COVER": "0", "CANCELLATION_COVER": "0", "GADGET_COVER": "2", "TRIP_EXCESS": "250" }

StackTrace:

代码语言:javascript
复制
Unable to execute query due to the following n1ql errors: 
{"msg":"Object member missing name or value: (`BAGGAGE_COVER` = 500) - at , \n Object member missing name or value: (`CANCELLATION_COVER` = 500) - at , \n Object member missing name or value:         (`GADGET_COVER` = 1) - at , \n Object member missing name or value: (`TRIP_EXCESS` = 50) - at }","code":3000}
代码语言:javascript
复制
[
  {
    "b_factor": {
      "_class": "com.intervest.price.oxygen.model.ClientMatrixFactorPopUp",
      "requestId": 21,
      results": [...],
      "supportedValues":{
        "BAGGAGE_COVER": "0",
        "CANCELLATION_COVER":"0",
        "GADGET_COVER":"2",
        "TRIP_EXCESS":"250"
      }
    }
  }
]
EN

回答 1

Stack Overflow用户

发布于 2020-04-12 03:56:59

看起来spring数据生成了错误的查询。该错误显示BAGGAGE_COVER周围有反勾号。它应该是常量对象。

检查查询生成是否正确。

上面提供的查询将起作用。在Web控制台中尝试并验证。

除非确实需要精确匹配,否则应该尝试必填字段,而不是对象比较,这样文档就有了可以匹配的额外字段。

代码语言:javascript
复制
SELECT * FROM b_factor
WHERE _class = "com.intervest.price.oxygen.model.ClientMatrixFactorPopUp" 
      AND requestId = 21
      AND supportedValues.BAGGAGE_COVER = "0"
      AND supportedValues.CANCELLATION_COVER = "0"
      AND supportedValues.GADGET_COVER = "2"
      AND supportedValues.TRIP_EXCESS = "250";
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61153210

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档