Spring-带有自定义@Query 注释的数据弹性搜索回购计数不起作用"Expected 1 but found 30 results"
Spring-Data elastic search repo count with custom @Query annotation not working "Expected 1 but found 30 results"
对于我的应用程序,我必须对弹性执行自定义计数,我想在我们使用的 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 中是否有类似的解决方案?
我可以使用弹性客户端或模板来执行自定义查询并获得结果,但如果可能的话,我更喜欢为此使用现有的存储库界面。
不,目前不可能。 ElasticsearchStringQuery
class 检查使用 @Query
注解的方法的 return 类型,然后执行适合该方法的 ElasticsearchOperations.queryFor...()
方法 return类型。这些是对数据而非计数的查询。
我在 Spring Data Elasticsearch Jira 中创建了一个问题来添加此功能。
对于我的应用程序,我必须对弹性执行自定义计数,我想在我们使用的 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 中是否有类似的解决方案?
我可以使用弹性客户端或模板来执行自定义查询并获得结果,但如果可能的话,我更喜欢为此使用现有的存储库界面。
不,目前不可能。 ElasticsearchStringQuery
class 检查使用 @Query
注解的方法的 return 类型,然后执行适合该方法的 ElasticsearchOperations.queryFor...()
方法 return类型。这些是对数据而非计数的查询。
我在 Spring Data Elasticsearch Jira 中创建了一个问题来添加此功能。