@Query 在连接到 elasticsearch 时包括额外的 // 用于转义字符“/””

问题描述 投票:0回答:1

服务等级:

String linkname = StringUtils.join(link, "\", \"");

String querylink = StringUtils.wrap(linkname, "\"");

String query = "{"+"\"linkname\":["+querylink +"]}";

res = elasticsearchRepo.getMethod(querylink, PageRequest.of(page-1, pageSize));

回购类:

@Query("{\"bool\":{\"filter\":[{\"terms\":?0}]}}")

Page<Testtables> getMethod(String query,Pageable pageable);

相同的代码在 springboot-starter-data-elastcisearch 版本 2.2.7.RELEASE 和 6.8.8 spring-data-elasticsearch(3.2.7.RELEASE 父级)中运行良好

但是 springboot-starter-data-elastcisearch 版本 2.2.14 和 7.17.11 spring-data-elastcisearch (4.4.14 父版本)出现异常

例外:

reason=意外字符(''(代码 92)):期望以双引号开头字段名称 [来源:[B@7192df39;行:1,列:31]]

java spring-boot elasticsearch spring-data-elasticsearch
1个回答
0
投票

@Query("{"bool":{"filter":[{"terms":{"linkname": ?0}}]}}")

正如 Val 在评论中建议的那样,在 ?0 中传递值并以静态字符串形式休息,这对我们有用..谢谢你

我们测试的springboot版本是2.7.14

© www.soinside.com 2019 - 2024. All rights reserved.