spring mongodb中去掉_class列
来源:互联网 发布:levered beta知乎 编辑:程序博客网 时间:2024/06/03 21:14
在spring for mongodb中,会发现当一个pojo序列化为一个document时,会出现如下
情况:
public class User {
String username;
String password;
}
转变为mongodb 时
- MongoOperations mongoOperation = (MongoOperations)ctx.getBean("mongoTemplate");
- User user = new User("abc", "password123");
- mongoOperation.save(user, "users");
会发现document中,多了个_class属性:
- {
- "_class" : "com.abc.user.User",
- ...................
- }
多了_class的意义,在下面这个链接有很好的解答:
http://stackoverflow.com/questions/6810488/spring-data-mongodb-mappingmongoconverter-remove-class/
,其实就是说,为了在把document转换成Java对象时能够转换到具体的子类.
要去掉的方法简单:DefaultMongoTypeMapper类的构造函数的第一个参数是Type在MongoDB中名字. 设置为null的话就不会在保存时自动添加_class属性.所以需要覆写
MappingMongoConverter。
1)用注解的方法取消:
- @Configuration
- public class SpringMongoConfig{
- public @Bean
- MongoDbFactory mongoDbFactory() throws Exception {
- return new SimpleMongoDbFactory(new Mongo(), "database");
- }
- public @Bean
- MongoTemplate mongoTemplate() throws Exception {
- MappingMongoConverter converter =
- new MappingMongoConverter(mongoDbFactory(), new MongoMappingContext());
- converter.setTypeMapper(new DefaultMongoTypeMapper(null));
- MongoTemplate mongoTemplate = new MongoTemplate(mongoDbFactory(), converter);
- return mongoTemplate;
- }
- 2)XML配置文件
- <pre name="code" class="java"><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>
- </pre>
- <br>
- <br>
- <br>
http://jackyrong.iteye.com/blog/1687361
http://www.mkyong.com/mongodb/spring-data-mongodb-remove-_class-column/
0 0
- spring mongodb中去掉_class列
- spring mongodb中去掉_class列
- spring mongodb中去掉_class列
- spring mongodb中去掉_class列
- Spring Data MongoDB 去掉_class属性字段
- spring-data-mongodb 去除 _class 列
- SpringBoot配置MongoDB去掉_class字段
- Spring Boot MongoDB How to remove _class from spring data mongodb collection
- 删除集合中的_class列
- Spring-Data-MongoDB保存对象的时候,如何不保存_class字段
- MongoDB进阶(十)去除Spring Data生成的_class字段并同时配置类型转换器
- spring-data-mongo 去除 _class 字段“失败”
- 去掉grid 列中 隐藏的菜单
- spring中配置mongoDB
- 数据库中去掉列中空格的方法!
- oracle中去掉某列重复的记录
- excel中只去掉列字段的第一个字符
- Flexigrid去掉列选择
- sql中,regexp_replace、lengthb分别是什么意思?
- mysql 字符集和排序
- android 7.0 changes for NDK developers
- PL/SQL 集合类型
- 垃圾回收
- spring mongodb中去掉_class列
- N个数求和
- Handler,Looper, Message解析(3)
- 框架开发之Java注解的妙用
- 洛谷P1303 A*B Problem
- 在腾讯云IIS上建立FTP文件服务的经验
- 排序算法整理
- JAVA中Math.round负数的取值
- pySpark记录