好问题。不幸的是,基于方法名称和名称中使用的约定生成 GemFire OQL 查询的 Repository 方法不支持 TRACE 或其他 OQL 语句,如IMPORT。
您可能知道,Spring Data GemFire 的 Repository 支持建立在Spring Data Commons Repository 基础设施之上,该基础设施为最广泛的数据存储支持(关系、键值、文档等)保持最低公分母。
不过,您可以通过设置 GemFire System 属性为所有 GemFire OQL 查询启用调试...
-Dgemfire.Query.VERBOSE=true
启动您的应用程序时。有关详细信息,请参阅GemFire 的查询调试用户指南。
不幸的是,如果您只想跟踪您的 OQL 查询之一,这会更加冗长,但会完成您想要的。
在基于 Repository 方法的单个 OQL 查询中进行 TRACE 的唯一其他方法是使用上面所示的 @Query 注释。
@Query("<trace> SELECT c FROM /customer c, c.emailAddresses email WHERE email.emailAddress = $1")
CustomerEntity findByEmailAddress(String emailAddress);
你的问题确实给了我一些想法。我正在考虑通过这样的注释提供 IMPORT 和 TRACE 支持......
@Trace
@Import("example.app.domain.CustomerEntity")
CustomerEntity findByUsername(String username);
这将非常优雅和有用。
请参阅我提交的新 JIRA 票证 ( SGF-392 ) 以添加对此功能的支持。
谢谢!