(MongoDB) MySql, MongoDB 둘다 적용하는 하이브리드형 개발 주의사항

두 디비를 적용하여 JPA @Transient를 적용할시
주의 사항이 있다.
도메인 객체 클래스에

특정 필드에 @Transient

javax.persistence패키지용 어노테이션을 사용하면, 이건 MySql 디비에만 적용된다.
즉, MongoDB에는 위 어노테이션이 적용되지 않는다.

반면, org.springframwork.data.annotation용 Transient를 적용하면 MongoDB에 적용되지만,
MySQL에 디비를 붙이는 서버가 올라가지 않는 문제가 있다.


만약 두 디비를 적용하고 한 클래스에서 @Transient어노테이션의 기능을 사용하고 싶다면
JPA용 javax.persistence 패키지의 @Transient를 사용하고,

몽고디비의 converter와 MongoDB Listener을 이용해 몽고디비 저장을 호출하기전
컨터버 기능을 작동해 Reflection을 이용해 위 두 어노테이션으 붙은 필드(변수를) 제거하여
위 기능을 사용하는 방법이 있다.

위 두 어노테이션이 적용되도록 하는 어노테이션을 따로 개발할 예정이다.

댓글

이 블로그의 인기 게시물

(네트워크)폴링방식 vs 롱 폴링방식

(ElasticSearch) 결과에서 순서 정렬

(18장) WebSocekt과 STOMP를 사용하여 메시징하기