Spring mongodbから削除_class列

3084 ワード

スプリング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オブジェクトに変換する際に具体的なサブクラスに変換できるようにするためである.
削除する方法は簡単です:DefaultMongoType-Mapperクラスのコンストラクション関数の最初のパラメータは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    
   

<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>