带有自定义@Query注释的Spring-Data弹性搜索回购计数不起作用“预期1,但找到30个结果”

timwashere:

对于我的应用程序,我必须对弹性执行自定义计数,我想在我们使用的ElasticsearchCrudRepository中为此使用@Query批注。当我使用以下签名时:

@Query("CUSTOM BOOL QUERY HERE")
long countItemsCustom();

这导致java.lang.IllegalArgumentException: Expected 1 but found 30 results异常,因为它是作为查询而不是计数执行的。对于spring-data-cassandra,我们有一个特殊的@CountQuery批注来解决此问题。在spring-data-elasticsearch中有类似的解决方案吗?

我可以使用弹性客户端或模板执行自定义查询并获取结果,但是如果可能的话,我更喜欢使用现有的存储库接口。

PJMeisch:

不,目前尚不可能。ElasticsearchStringQuery类检查被注释与方法的返回类型@Query的注释,然后执行ElasticsearchOperations.queryFor...()适合于该方法的返回类型的方法。这些是查询数据而不是计数。

我在Spring Data Elasticsearch Jira中创建了一个问题以添加此功能。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章