get未能示例化[java.nio.heapbytebuffer]:从mongo检索时找不到默认构造函数

hrirmatl  于 2021-06-30  发布在  Java
关注(0)|答案(1)|浏览(360)

我有一个java类,如下所示

@Data
@Document(collection="sample_collection")
public class sampleClass {
  private Instant createTime;
  private Object payLoad;
  // some more fields
}

有效负载对象可以是null或不同类的对象,并且可以包含bytebuffer类型的字段。
现在,在尝试将其作为文档保存到mongo时,我没有遇到任何问题,但是在检索文档时,我得到instantiationexception(每当payload对象被填充并且具有bytebuffer字段时)
以下是例外情况的详细信息:

org.springframework.data.mapping.model.MappingInstantiationException: Failed to instantiate java.nio.HeapByteBuffer using constructor NO_CONSTRUCTOR with arguments 
at org.springframework.data.convert.ReflectionEntityInstantiator.createInstance
at org.springframework.data.convert.ClassGeneratingEntityInstantiator.createInstance
at org.springframework.data.mongodb.core.convert.MappingMongoConverter.read

我找不到为heapbytebuffer字段定义构造函数的方法。任何线索都将不胜感激。

1hdlvixo

1hdlvixo1#

从我的观点来看,您应该在实体中使用更具体的类作为字段,或者您可以尝试使用转换器作为解决此问题的方法:在springdatamongo中设置自定义转换器

相关问题