您知道是否可以使用springDataGemfire执行以下操作:
@Query("$1")
List<String> getQuery(String Query);
我们正在尝试构建动态查询,然后在GemFire上运行它
我们收到以下错误:
org.springframework.dao.InvalidDataAccessApiUsageException:从GemfireCallback返回的结果对象不是SelectResult:
祝你好运, 法里德
答案 0 :(得分:1)
法里德 -
Pivotal GemFire的SD [G] 存储库基础结构和扩展,特别是使用@Query
注释的显式OQL查询,从未打算以这种方式使用。
基本上,您正在尝试使用SD 存储库基础架构来运行&#34; ad hoc&#34;因此,GemFire OQL查询为什么不直接使用GemfireTemplate,甚至GemFire的QueryService API用于此目的?
您尝试做的事情类似于直接使用 Hibernate 进行映射和普通查询之外的复杂查询(这不是 Hibernate 的目的)(或者 Spring JdbcTemplate
)更适合提前查询功能。
但是仍然可以使用混合方法,其中&#34;提供&#34; SD 存储库基础架构处理大多数应用程序的数据访问模式(例如CRUD,简单查询等),并将其与"custom" Repository implementation结合使用。
我有一个这样的&#34; custom&#34; SDG的{em>通讯录应用程序 RI中的GemFire的存储库实现,here。 CustomerRepository扩展了CustomerRepositoryExtension,它在CustomerRepositoryImpl类中实现。 SD的存储库基础架构选择了这个&#34; custom&#34;为 CustomerRepository 接口创建存储库代理时的实现。在这种情况下,我正在"custom Repository data access/query method调用GemFire函数(可以看到here)。
在您的情况下,直接使用SDG GemfireTemplate
或GemFire的QueryService
API运行传入的动态OQL查询是一件简单的事情。
希望这有帮助! -John