在ES 7.5.x中将二进制字段数据读取到byte []字段时发生转换异常>> [

问题描述 投票:0回答:1
我的实体类定义如下:

@Document(indexName = "payload-pojo") public class PayloadPojo { @Id private String id; @Field(index = false,type = FieldType.Binary) byte[] payload; }

和存储库定义如下:

public interface PayloadRepository extends ElasticsearchRepository<PayloadPojo, String> { }

在ES 6.8.1(Spring Data Elasticsearch 3.2.0中,我设法毫无问题地存储和读取二进制数据。

现在,我想移至ES 7.5.2,因此我将项目迁移为使用Spring Data Elasticsearch 4.0.0。从那时起,当我尝试调用类似payloadRepo.findAll()的代码时,我得到了转换异常:Failed to convert from type [java.lang.String] to type [byte]。数据存储为base64编码的字符串。

您是否知道更改了什么以及如何更改我的代码以正确读取此值?

谢谢

我的实体类定义如下:@Document(indexName =“ payload-pojo”)公共类PayloadPojo {@Id private String id; @Field(index = false,type = FieldType.Binary)字节[] ...

elasticsearch spring-data-elasticsearch elasticsearch-7
1个回答
0
投票
FieldType.Binary已添加至4.0版本。到目前为止,仍然缺少的是一个内部转换器,可以在byte[]和base64编码的字符串之间进行转换(elasticsearch中的字段类型二进制始终是base64编码的。)

我刚刚添加了它,应该在下一个快照版本中。

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