[Spring Boot] Mongodb 연동 시 _class 저장되는 문제: MongoDBConfig.java 파일 위치
- Spring Boot + Mongodb 를 연동한 RestApi 서버를 구현해 보고 있다.
- post method 로 값을 저장하는데 원치않는 값이 추가로 저장된다.
3. _class 라는 값이 생겼다. 찾아보니 클래스의 패키지 정보라는데 저런 필드가 생기는걸 원치 않는다.
4. 해당 필드를 생성 안 하는 방법은 여러개 있는데 어디에 어떤 파일에 만들어야 하는지에 대한 정보가 없다. spring 을 잘 아는 사람들이야 쉬울 수 있나본데 처음 접해보는 초보들한테는 이런 정보가 무척 아쉽다. 해결법은 있는데 어떻게 해결해야 하는거야?
5. 아래와 같이 main 함수가 있는 파일과 같은 폴더에 만들면 된다.
//src/main/java/com.example.demo/MongoDBConfig.java
package com.example.demo;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.data.mongodb.MongoDatabaseFactory;
import org.springframework.data.mongodb.core.convert.DbRefResolver;
import org.springframework.data.mongodb.core.convert.DefaultDbRefResolver;
import org.springframework.data.mongodb.core.convert.DefaultMongoTypeMapper;
import org.springframework.data.mongodb.core.convert.MappingMongoConverter;
import org.springframework.data.mongodb.core.mapping.MongoMappingContext;
@Configuration
public class MongoDBConfig {
@Bean
public MappingMongoConverter mappingMongoConverter(
MongoDatabaseFactory mongoDatabaseFactory,
MongoMappingContext mongoMappingContext
) {
DbRefResolver dbRefResolver = new DefaultDbRefResolver(mongoDatabaseFactory);
MappingMongoConverter converter = new MappingMongoConverter(dbRefResolver, mongoMappingContext);
converter.setTypeMapper(new DefaultMongoTypeMapper(null)); //null 처리가 핵심
return converter;
}
}
6. _class 값을 안 넣고 잘 들어간다.