Spring Boot中去除spring-data-mongodb自动生成的_class字段

MongoDBSpring DataSpring Boot大约 681 字

问题现象

在使用MongoTemplateMongoRepository进行持久化时,Spring Data框架会帮我们自动生成一个_class字段。

字段说明

_class字段存储的是类的全路径名,当有子类继承了父类,_class路径将保存的是子类的全路径名。其作用是:在反序列化时可以转换成子类对应的对象,而如果去除_class字段,将无法反序列化为子类对象,只能反序列化为父类对象。

去除方法

配置映射转换,去除默认添加。

@Configuration
public class MyBean {

    @Bean
    public MappingMongoConverter mappingMongoConverter(MongoDbFactory mongoDbFactory, MongoMappingContext mongoMappingContext) {

        DbRefResolver dbRefResolver = new DefaultDbRefResolver(mongoDbFactory);
        MappingMongoConverter converter = new MappingMongoConverter(dbRefResolver, mongoMappingContext);
        converter.setTypeMapper(new DefaultMongoTypeMapper(null));

        return converter;
    }

}
阅读 390 · 发布于 2020-05-11

————        END        ————

扫描下方二维码关注公众号和小程序↓↓↓

昵称:
随便看看换一批