我的实体类定义如下:
@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 编码字符串。
您是否知道发生了什么变化以及如何更改我的代码以正确读取此值?
谢谢