首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何确定Spring数据Gemfire查询是否使用Gemfire索引?

如何确定Spring数据Gemfire查询是否使用Gemfire索引?
EN

Stack Overflow用户
提问于 2015-04-02 20:38:04
回答 1查看 463关注 0票数 0

我试图确定是否所有Spring数据Gemfire查询都使用了在Gemfire服务器上定义的索引。

使用OQL,我知道我可以添加"<trace>“,并在gemfire日志中显示是否使用了索引:

代码语言:javascript
复制
@Query("<trace> SELECT c FROM /customer c, c.emailAddresses email WHERE email.emailAddress = $1")
CustomerEntity findByEmailAddress(String emailAddress);

但是,我们没有定义OQL的方法呢,像这样呢?(假设用户名不是客户区域的键):

代码语言:javascript
复制
CustomerEntity findByUsername(String username);
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-04-03 19:10:30

问得好。不幸的是,用于根据名称中使用的方法名称和约定生成GemFire OQL查询的Repository方法不支持跟踪或其他OQL语句(如导入 )。

您可能知道,Spring数据GemFire的仓库支持构建在Spring数据共享库基础设施之上,它维护数据存储支持范围最广的最低公共分母(关系、键值、文档等)。

但是,可以通过设置GemFire系统属性为所有GemFire OQL查询启用调试.

代码语言:javascript
复制
-Dgemfire.Query.VERBOSE=true

在启动应用程序时。有关更多细节,请参见GemFire查询调试用户指南

不幸的是,如果您只想跟踪OQL查询中的一个,但会完成您想要的任务,这就稍微复杂了一些。

基于Repository方法在单个OQL查询中跟踪的唯一其他方法是使用@Query注释,如上面所示。

代码语言:javascript
复制
@Query("<trace> SELECT c FROM /customer c, c.emailAddresses email WHERE email.emailAddress = $1")
CustomerEntity findByEmailAddress(String emailAddress);

不过,你的问题确实给了我一些想法。我想通过这样的注解来提供导入和跟踪支持。

代码语言:javascript
复制
@Trace
@Import("example.app.domain.CustomerEntity")
CustomerEntity findByUsername(String username);

这将是非常优雅和有用的。

请参阅我为添加对此特性的支持而提交的新JIRA票据(SGF-392)。

谢谢!

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29422032

复制
相关文章

相似问题

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