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

MongoDB Spring Data Spring Boot About 682 words

问题现象

在使用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;
    }

}
Views: 5,790 · Posted: 2020-05-11

————        END        ————

Give me a Star, Thanks:)

https://github.com/fendoudebb/LiteNote

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

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


Today On History
Browsing Refresh