使用TinkerPop API提交带参数替换的Gremlin查询遇解析错误求助
解决Gremlin参数绑定中的token recognition错误
问题出在Gremlin查询字符串里的参数标识方式不对——Gremlin绑定参数必须以$作为前缀,直接写applicationID会被解析器当成未定义的变量,从而触发语法错误。
修正后的代码
Map<String,Object> params = new HashMap<>(); params.put("applicationID", "9b1ef8ce3baabafe5167d276bb07d829"); ResultSet rs = client.submit("g.V().hasLabel('application').has(T.id, $applicationID)", params);
关键说明
在提交的Gremlin字符串中,所有需要替换的绑定参数都必须以$开头,这样Gremlin驱动才能识别出这是一个需要从传入的params Map中取值的变量,而不是尝试解析为Gremlin自身的语法元素。
你之前的写法缺少$前缀,解析器会把applicationID当作一个未知的标识符处理,这就导致了报错信息里的"token recognition error at: 'ap'"。
内容的提问来源于stack exchange,提问作者Andrew Coulson
相关产品推荐
相关产品推荐

