본문 바로가기
블로그 이미지

방문해 주셔서 감사합니다! 항상 행복하세요!

  
   - 문의사항은 메일 또는 댓글로 언제든 연락주세요.
   - "해줘","답 내놔" 같은 질문은 답변드리지 않습니다.
   - 메일주소 : lts06069@naver.com


Spring framework/Spring boot

[Springboot] Mongotemplate 에서 _class 제거

야근없는 행복한 삶을 위해 ~
by 마샤와 곰 2023. 4. 25.

 

자바 기반의 몽고템플릿 라이브러리를 사용하면 데이터를 저장하거나 수정 할 때 "_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 제거 방법 이였습니다.

궁금한점 또는 틀린부분은 언제든 연락 주세요!  😊

 

반응형
* 위 에니메이션은 Html의 캔버스(canvas)기반으로 동작하는 기능 입니다. Html 캔버스 튜토리얼 도 한번 살펴보세요~ :)
* 직접 만든 Html 캔버스 애니메이션 도 한번 살펴보세요~ :)

댓글