使用 GemfireTemplate.query 方法的 HINT 和 TRACE
Using HINT and TRACE with GemfireTemplate.query method
我正在尝试向 docs, using GemfireTemplate query method 中提到的 OQL 查询添加跟踪。但是 OQL 验证失败并出现 QueryInvalidException“unexpected tokern: <”。有什么想法吗?
这不是 SDG GemfireTemplate
的错误,也不是 SDG 的一般问题。
GemFire/Geode中有2种查询方式。
首先是使用QueryService
, which can be obtained from the cache. Alternatively, you can obtai the QueryService
from the ClientCache
or even from the Pool
attached to the Region
on which you are running the OQL query. This is all handled for you automatically when using SDG's Repository abstraction extension.
查询 Region
的第二种方法是将查询“PREDICATE”传递给 Region.query(:String)
方法。
您认为 GemfireTemplate.query(:String)
方法使用的是哪种 GemFire/Geode API?
GemfireTemplate.query(:String)
uses Region.query(:String)
API.
GemfireTemplate.find(:String)
方法usesQueryService
.
只有 QueryService
可以接受完全有效的 OQL 查询,例如<TRACE> SELECT * FROM /SomeRegion WHERE id = 1
,其中 Region.query(:String)
方法仅接受 OQL 查询谓词,即 id = 1
.
任何其他 OQL Query reserved words or query syntax 通常传递给 GemfireTemplate.query(:String)
方法(并通过扩展 Region.query(:String)
API)导致无效的 OQL 查询。
如果要传递 <HINT 'IDIndex', ...> <TRACE> SELECT * FROM /SomeRegion WHERE id = 1 AND ...
,则应调用 GemfireTemplate.find(:String)
,它使用接受完整 OQL 查询语法的 GemFire/Geode QueryService
。
或者,您可以使用 Spring Data for Apache Geode(或 VMware Tanzu GemFire)Repository 扩展。
甚至还可以将 HINTS、TRACES、LIMITS 或其他查询工具添加到派生的 Repository 查询方法以及用 @Query
注释的查询方法。有关详细信息,请参阅 documentation。
我正在尝试向 docs, using GemfireTemplate query method 中提到的 OQL 查询添加跟踪。但是 OQL 验证失败并出现 QueryInvalidException“unexpected tokern: <”。有什么想法吗?
这不是 SDG GemfireTemplate
的错误,也不是 SDG 的一般问题。
GemFire/Geode中有2种查询方式。
首先是使用
QueryService
, which can be obtained from the cache. Alternatively, you can obtai theQueryService
from theClientCache
or even from thePool
attached to theRegion
on which you are running the OQL query. This is all handled for you automatically when using SDG's Repository abstraction extension.查询
Region
的第二种方法是将查询“PREDICATE”传递给Region.query(:String)
方法。
您认为 GemfireTemplate.query(:String)
方法使用的是哪种 GemFire/Geode API?
GemfireTemplate.query(:String)
uses Region.query(:String)
API.
GemfireTemplate.find(:String)
方法usesQueryService
.
只有 QueryService
可以接受完全有效的 OQL 查询,例如<TRACE> SELECT * FROM /SomeRegion WHERE id = 1
,其中 Region.query(:String)
方法仅接受 OQL 查询谓词,即 id = 1
.
任何其他 OQL Query reserved words or query syntax 通常传递给 GemfireTemplate.query(:String)
方法(并通过扩展 Region.query(:String)
API)导致无效的 OQL 查询。
如果要传递 <HINT 'IDIndex', ...> <TRACE> SELECT * FROM /SomeRegion WHERE id = 1 AND ...
,则应调用 GemfireTemplate.find(:String)
,它使用接受完整 OQL 查询语法的 GemFire/Geode QueryService
。
或者,您可以使用 Spring Data for Apache Geode(或 VMware Tanzu GemFire)Repository 扩展。
甚至还可以将 HINTS、TRACES、LIMITS 或其他查询工具添加到派生的 Repository 查询方法以及用 @Query
注释的查询方法。有关详细信息,请参阅 documentation。