somoly.tistory.com
article thumbnail
Published 2019. 7. 9. 10:18
MongoDB _class 필드 제거하기 SpringBoot

MongoDB 사용시, SpringBoot 자동설정을 이용할 경우 아래와 같이 _class 에 Entity Class 의 package 정보가 함께 저장됩니다.

이 부분을 제거하기 위해서는 DefaultMongoTypeMapper 설정을 변경하면 됩니다.

<code />
{ "_id" : NumberLong(112), "name" : "마샤", "tags" : [ "여자캐릭터", "흑마법사" ], "_class" : "com.company.model.entity.Actor" }

 

자동설정 소스코드 org.springframework.boot.autoconfigure.data.mongo.MongoDataAutoConfiguration 참고

<code />
@Bean @ConditionalOnMissingBean({MongoConverter.class}) public MappingMongoConverter mappingMongoConverter(MongoDbFactory factory, MongoMappingContext context, MongoCustomConversions conversions) { DbRefResolver dbRefResolver = new DefaultDbRefResolver(factory); MappingMongoConverter mappingConverter = new MappingMongoConverter(dbRefResolver, context); mappingConverter.setCustomConversions(conversions); return mappingConverter; }

 

변경 후 ( 설정 추가: mappingConverter.setTypeMapper(new DefaultMongoTypeMapper(null)); )

<code />
@Configuration public class MongoConfiguration { @Bean @ConditionalOnMissingBean(MongoConverter.class) public MappingMongoConverter mappingMongoConverter(MongoDbFactory factory, MongoMappingContext context, MongoCustomConversions conversions) { DbRefResolver dbRefResolver = new DefaultDbRefResolver(factory); MappingMongoConverter mappingConverter = new MappingMongoConverter(dbRefResolver, context); mappingConverter.setCustomConversions(conversions); mappingConverter.setTypeMapper(new DefaultMongoTypeMapper(null)); return mappingConverter; } }

'SpringBoot' 카테고리의 다른 글

Spring 6 의 HTTP Interface  (0) 2023.03.14
Retrying Feign Calls  (0) 2023.03.14
RedisTemplate 과 Json Serializer 설정  (0) 2019.07.09
restful json request response 패킷 로깅 필터  (1) 2019.07.04
404 NoHandlerFoundException 설정  (1) 2019.07.04
profile

somoly.tistory.com

@RxCats

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!