簡體   English   中英

帶有自定義@Query注釋的Spring-Data彈性搜索回購計數不起作用“預期1,但找到30個結果”

[英]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 Exception,因為它是作為查詢而不是計數執行的。 對於spring-data-cassandra,我們有一個特殊的@CountQuery批注來解決此問題。 在spring-data-elasticsearch中有類似的解決方案嗎?

我可以使用彈性客戶端或模板來執行自定義查詢並獲取結果,但是如果可能的話,我更喜歡使用現有的存儲庫接口。

不,目前尚不可能。 ElasticsearchStringQuery類檢查使用@Query注釋注釋的方法的返回類型,然后執行適合於該方法的返回類型的ElasticsearchOperations.queryFor...()方法。 這些是查詢數據而不是計數。

我在Spring Data Elasticsearch Jira中創建了一個問題以添加此功能。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM