由于以下n1ql错误,我无法执行查询:
存储库查询
public ClientMatrixFactorPopUp findBySupportedValuesAndRequestId(SortedMap supportedValues,Long requestId);
预期的N1QL:
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:
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}
[
{
"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"
}
}
}
]
答案 0 :(得分:1)
看来是弹簧数据生成了错误的查询。该错误表明在BAGGAGE_COVER周围有回勾。它应该是常量对象。
检查查询生成权限。
上面提供的查询将起作用。在Web控制台中尝试并验证。
除非确实需要完全匹配,否则应该尝试必填字段,而不是进行对象比较,以便该文档具有可以匹配的其他字段。
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";