티스토리 뷰

spring-data-mongodb를 이용하여 mongoDB와 연동하는 프로젝트를 만들고있다.

CRUD API를 만들고 있는 도중에 insert하는 부분에서 이상한 것을 발견했다.

{
	"id":"AA0001",
	"name":"T-shirts",
	"type":"clothing",
	"price":"5000"
}
위와 같이 요청(POST)을 하여서 객체로 변환 후 
insert 메소드로 저장을 했다.  -  mongoTemplate.insert(obj);
200 OK 메시지가 떨어졌고, DB에 저장이 되었지만...

{
	"id":"AA0001",
	"_class":"com.test.model.product",
	"name":"T-shirts",
	"type":"clothing",
	"price":"5000"
}

위와 같이 "_class"라는 필드가 함께 저장이 되었다ㅠㅠ

http://stackoverflow.com/questions/6810488/spring-data-mongodb-mappingmongoconverter-remove-class/
여기에 "_class"가 같이 추가되는 이유는 나와있는데... 잘 모르겠다 ㅠㅠ

해결 방법

변경 전 (spring-context.xml)





	



변경 후 (spring-context.xml)







	
		
	

  

	
	
	



	
	

spring-context.xml의 mongoDB 설정에서 mongoTemplate을 생성하는 bean에 mappingMongoConverter를 추가해 주었다.
mappingMongoConverter는 typeKey를 Null로 채운 typeMapper를 defaultMongoTypeMapper를 가진 클래스이다.

위와 같이 변경하니 더 이상 "_class" 필드는 추가되지 않았다.

출처 - https://www.mkyong.com/mongodb/spring-data-mongodb-remove-_class-column/
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
«   2025/07   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31
글 보관함