spring-data-mongo 去除 _class 字段“失敗”

去除 _class 字段成功

@Configuration
public class MongoConfiguration {

    @Bean
    public MongoDbFactory mongoDbFactory() throws Exception {
        // TODO 初始化 factory 工作
        MongoDbFactory object = ...;
        return object;
    }

    @Bean
    public MongoTemplate mongoTemplate() throws Exception {
        MappingMongoConverter mongoConverter = new MappingMongoConverter(new DefaultDbRefResolver(mongoDbFactory()), new MongoMappingContext());
        mongoConverter.setTypeMapper(new DefaultMongoTypeMapper(null)); // typeKey 設置爲 null。默認的無參構造爲 _class
        return new MongoTemplate(mongoDbFactory(), mongoConverter);
    }

}

去除 _class 字段失敗

@Configuration
public class MongoConfiguration {

    @Bean
    public MongoDbFactory mongoDbFactory() throws Exception {
        // TODO 初始化 factory 工作
        MongoDbFactory object = ...;
        return object;
    }

    @Bean
    public MongoOperations mongoTemplate() throws Exception {
        MappingMongoConverter mongoConverter = new MappingMongoConverter(new DefaultDbRefResolver(mongoDbFactory()), new MongoMappingContext());
        mongoConverter.setTypeMapper(new DefaultMongoTypeMapper(null)); // typeKey 設置爲 null。默認的無參構造爲 _class
        return new MongoTemplate(mongoDbFactory(), mongoConverter);
    }

}

代碼的區別

唯一的不同之處爲 mongoTemplate() 方法。返回的類型範圍不同,
返回向上轉型後的類型 MongoOperations,該方式去除失敗
返回原始類型 MongoTemplate,該方式成功

目前未發現該 bug 產生的原因。
發佈了80 篇原創文章 · 獲贊 16 · 訪問量 25萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章