首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >spring boot中删除Data MongoDB的_class

spring boot中删除Data MongoDB的_class

作者头像
猿天地
发布2018-04-03 12:41:02
发布2018-04-03 12:41:02
4K00
代码可运行
举报
文章被收录于专栏:猿天地猿天地
运行总次数:0
代码可运行

在使用data mongodb插入数据的时候,插入后文档中会多出一个_class.

定义实体类

代码语言:javascript
代码运行次数:0
运行
复制
public class User {

    String username;
    String password;

    //...getters and setters
}

保存

代码语言:javascript
代码运行次数:0
运行
复制
User user = new User("yinjihuan", "password123");
mongoTemplate.save(user);

查询

代码语言:javascript
代码运行次数:0
运行
复制
> db.users.find()
{
    "_class" : "com.cxytiandi.bean.User",
    "_id" : ObjectId("5050aef830041f24ff2bd16e"),
    "password" : "password123",
    "username" : "yinjihuan"
}

想要去掉需要修改MappingMongoConverter的typemapper为new DefaultMongoTypeMapper(null)

使用注解方式自己创建template对象替代spring boot为我们默认创建的。

代码语言:javascript
代码运行次数:0
运行
复制
@Configuration
public class SpringMongoConfig{

  public @Bean MongoDbFactory mongoDbFactory() throws Exception {
    return new SimpleMongoDbFactory(new Mongo(), "database");
  }

  public @Bean MongoTemplate mongoTemplate() throws Exception {

    //remove _class
    MappingMongoConverter converter =
        new MappingMongoConverter(mongoDbFactory(), new MongoMappingContext());
    converter.setTypeMapper(new DefaultMongoTypeMapper(null));

    MongoTemplate mongoTemplate = new MongoTemplate(mongoDbFactory(), converter);

    return mongoTemplate;

  }

}

如果不是spring boot项目则可以用xml配置。

代码语言:javascript
代码运行次数:0
运行
复制
<mongo:mongo host="localhost" port="27017" />
<mongo:db-factory dbname="database" />

 <bean id="mappingContext"
    class="org.springframework.data.mongodb.core.mapping.MongoMappingContext" />

 <bean id="defaultMongoTypeMapper"
    class="org.springframework.data.mongodb.core.convert.DefaultMongoTypeMapper">
    <constructor-arg name="typeKey"><null/></constructor-arg>
 </bean>

 <bean id="mappingMongoConverter"
    class="org.springframework.data.mongodb.core.convert.MappingMongoConverter">
    <constructor-arg name="mongoDbFactory" ref="mongoDbFactory" />
    <constructor-arg name="mappingContext" ref="mappingContext" />
    <property name="typeMapper" ref="defaultMongoTypeMapper" />
 </bean>

 <bean id="mongoTemplate" class="org.springframework.data.mongodb.core.MongoTemplate">
    <constructor-arg name="mongoDbFactory" ref="mongoDbFactory" />
    <constructor-arg name="mongoConverter" ref="mappingMongoConverter" />
 </bean>
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2017-01-11,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 猿天地 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档