在将地图类型数据保存到couchBase时,我遇到了异常
起因:org.springframework.data.mapping.MappingException:找不到类型java.lang.Object的PersistentEntity!
我已经在DataModel中拍摄了一张地图
@Data
public class test {
private Map<String,Object> testMap;
}
我发现this并重写了ouchBase配置,以在对象类型为诸如此类的情况下进行customMapping
protected <R> R read(final TypeInformation<R> type, final CouchbaseDocument source,
final Object parent) {
if (Object.class == typeMapper.readType(source, type).getType()) {
return (R) source.export();
} else {
return super.read(type, source, parent);
}
}
它适用于
之类的请求{
"dummyMap":{
"key1":"val1",
"key2":"val2"
}
}
但因
而失败{
"dummyMap":{
"key1":"val1",
"key2":"val2",
"objects":[
{
"key1":"val1",
"key2":"val2"
}
]
}
}
例外
原因:java.lang.IllegalArgumentException:基本类型不能为null!
我想这是因为数组。请让我知道我在做什么错。
我正在使用spring-data-couchbase 2.0.4.RELEASE版本。
答案 0 :(得分:0)
嗨,请使用下面的代码,因为类型为空并且沙发基映射转换器无法读取文档 它必须工作。
@Override
@SuppressWarnings("unchecked")
protected <R> R read(final TypeInformation<R> type, final CouchbaseDocument source, final Object parent) {
if (type == null)
return (R) source.export();
if (Object.class == typeMapper.readType(source, type).getType()) {
return (R) source.export();
} else {
return super.read(type, source, parent);
}
}