如何在Spring Data Elasticsearch存储库中编写带有集合参数的Query注释 &



ProductRepository extends ElasticsearchRepository<Product, String>中,我有一个工作查询:

@Query("{"bool": {"
+ "    "filter": ["
+ "        {"term": {"CategoryID.keyword": {"value": "?0"}}},"
+ "        {"terms": {"Name.keyword": ["Name_A","Name_B","Name_C"]}}"
+ "     ]"
+ "   }"
+ "}")
Stream<Product> findByCategoryIDAndNames(String categoryId, PageRequest pageRequest);

我需要在注释中不硬编码terms值,而是作为方法的List<String>参数。我找不到编写Query注释来查询名称集合的正确方法,例如:

@Query("{"bool": {"
+ "    "filter": ["
+ "        {"term": {"CategoryID.keyword": {"value": "?0"}}},"
+ "        {"terms": {"Name.keyword": ["?1"]}}"
+ "     ]"
+ "   }"
+ "}")
Stream<Product> findByCategoryIDAndNames(String categoryId, List<String> names, PageRequest pageRequest);

编译和运行没有错误,但不能工作。
在Spring Data Elasticsearch文档中,我找不到一个如何做到这一点的例子。

Spring Data Elasticsearch version: 4.0.4

支持收集参数在2021年7月3日为分支4.3到4.1添加了PR #1856。4.0分支在2021年5月之前支持OSS,因此不再更新。

相关内容

  • 没有找到相关文章

最新更新