자바 기반의 몽고템플릿 라이브러리를 사용하면 데이터를 저장하거나 수정 할 때 "_class" 필드 항목이 저장하는 클래스 패키지명과 함께 항상 생기고는 합니다.
아래 사진처럼 패키지명과 클래스 이름이 그대로 저장되어 깨림찍 하지 않을 수 없습니다.
몽고템플릿에서는 데이터를 매핑 할 때 주어진 클래스<T> 의 패키지와 이름을 넣도록 기본설정이 되어 있습니다.
해당 기능을 끄기 위해서는 application.properties 에서는 할 수 없으며, 따로 빈 객체를 생성해야 합니다.
위 내용에 해당되는 코드 입니다.
* 몽고컨피그.class
import org.springframework.beans.factory.BeanFactory;
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 몽고건피그 {
@Bean
public MappingMongoConverter 컨버팅설정(MongoDatabaseFactory factory, MongoMappingContext ctx,
BeanFactory beanFactory) {
DbRefResolver resolver = new DefaultDbRefResolver(factory);
MappingMongoConverter converter = new MappingMongoConverter(resolver, ctx);
converter.setTypeMapper(new DefaultMongoTypeMapper(null)); //요기!
return converter;
}
}
딱히 어렵지 않는 코드 입니다.
타입매퍼값을 새로이 디폴트 형식에 null 값을 할당하면 _class 필드 값을 더 이상 저장되지 않습니다.
간단하게 알아본 Mongotemplate 에서 _class 제거 방법 이였습니다.
궁금한점 또는 틀린부분은 언제든 연락 주세요! 😊
반응형
'Spring framework > Spring boot' 카테고리의 다른 글
[Springboot] thymeleaf 오류 : TemplateInputException, ParseException (0) | 2023.05.16 |
---|---|
[SpringBoot] Spring Security jwt 연동 하기 - 2023 (2) | 2023.04.07 |
SpringBoot gRPC 체험 후기 - 2 (파일, File) (0) | 2023.03.08 |
SpringBoot gRPC 체험 후기 - 1 (0) | 2023.03.08 |
메이븐(maven) 환경에서 Q클래스 생성 (0) | 2022.11.22 |
* 위 에니메이션은 Html의 캔버스(canvas)기반으로 동작하는 기능 입니다. Html 캔버스 튜토리얼 도 한번 살펴보세요~ :)
* 직접 만든 Html 캔버스 애니메이션 도 한번 살펴보세요~ :)
댓글