微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

通过GemfireTemplate.query方法使用HINT和TRACE

如何解决通过GemfireTemplate.query方法使用HINT和TRACE

我正在尝试使用GemfireTemplate docsquery method中提到的OQL查询添加跟踪。但是OQL验证失败,并出现QueryInvalidException“意外的令牌:

解决方法

这不是SDG user@workspacexhnc27ngrq5uvvr3:/projects/challenge$ ansible-playbook mainplaybook.yml ERROR! unexpected parameter type in action: <class 'ansible.parsing.yaml.objects.AnsibleSequence'> The error appears to be in '/projects/challenge/fresco_loops/tasks/main.yml': line 2,column 3,but may be elsewhere in the file depending on the exact syntax problem. The offending line appears to be: --- - name: install apache2,sqlite3,git ^ here user@workspacexhnc27ngrq5uvvr3:/projects/challenge$ ansible-playbook mainplaybook.yml ERROR! unexpected parameter type in action: <class 'ansible.parsing.yaml.objects.AnsibleSequence'> The error appears to be in '/projects/challenge/fresco_loops/tasks/main.yml': line 2,git ^ here 的错误,也不是SDG的总体问题。

在GemFire / Geode中有两种查询方式。

  1. 首先,要使用post,它可以得到QueryService。或者,您可以获取运行OQL查询所依据的GemfireTemplate上的QueryService from the cache甚至是from the ClientCache。使用SDG的from the Pool时,这一切将自动为您处理。

  2. 查询Region的第二种方法是将查询“ PREDICATE”传递给Repository abstraction extension方法。

您认为Region方法在使用哪个GemFire / Geode API?

GemfireTemplate.query(:String) Region.query(:String) GemfireTemplate.query(:String) API。

Region.query(:String)方法uses GemfireTemplate.find(:String)

QueryService可以接受完全有效的OQL查询,例如QueryService,其中<TRACE> SELECT * FROM /SomeRegion WHERE id = 1方法仅接受OQL查询PREDICATE,即Region.query(:String)

通常将任何其他usesOQL Query reserved words传递给id = 1方法(以及扩展名GemfireTemplate.query(:String) API)都会导致无效的OQL查询。

如果您想传递Region.query(:String),则应调用<HINT 'IDIndex',...> <TRACE> SELECT * FROM /SomeRegion WHERE id = 1 AND ...,它使用接受完整OQL查询语法的GemFire / Geode GemfireTemplate.find(:String)

或者,您可以使用 Apache Geode的Spring数据(或VMware Tanzu GemFire)存储库扩展。

甚至仍然可以将HINTS,TRACES,LIMITS或其他查询功能添加到派生的存储库查询方法以及用QueryService注释的查询方法中。有关更多详细信息,请参见query syntax

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。