所以我遇到了同样的问题,从 spring-data-couchbase 3.x 开始,您需要扩展 MappingCouchBaseConverter 并基本上覆盖一堆方法(主要是复制私有方法)。
实际变化在
protected void writeInternal(final Object source, final CouchbaseDocument target,
final CouchbasePersistentEntity<?> entity)
您必须在哪里找到检查if (null != propertyObj)
并添加一个 else 块:
else {
writeSimpleInternal(null, target, prop.getFieldName());
}
我觉得 Spring 团队可能只是添加一个选项来序列化 null(或不序列化),然后进行这个小改动。但是,如果您不想等待这些更改 - 只需从他们的类继承,覆盖并在您的 CouchBaseConfig 中添加转换器,如下所示:
@Override
public MappingCouchbaseConverter mappingCouchbaseConverter() throws Exception {
CustomMappingCouchbaseConverter converter = new CustomMappingCouchbaseConverter(couchbaseMappingContext(), typeKey());
converter.setCustomConversions(customConversions());
return converter;
}