작성
·
248
0
지속적인 추적이,,필요하지 않을땐 @Embeddable 쓰인다고 하는데
테이블의 대부분 데이터는 고정이고 가끔 한두개의 칼럼만 변경될떄 @Embeddable 쓰나요?
답변 1
1
안녕하세요. dhandand123님, 공식 서포터즈 OMG입니다.
영한님의 JPA 기본편을 참고하시면 많은 도움이 될 것 같은데요, 기본편 자료로 설명드리겠습니다.
값 타임의 정의는 아래와 같습니다.
강의에서 Address가 값타입으로 쓰이는데, 아래에서 값 타입 분류 중 임베디드 타입이라고 볼 수 있습니다.
아래와 같은 엔티티가 있다고 할 때, (근무 시작일, 종료일)을 WorkPeriod란 클래스로 묶고,
(도시, 우편번호, 번지) 를 Address란 클래스로 묶을 때
WorkPeriod와 Address 클래스에는 @Embeddable을 선언하고
Member 엔티티의 필드로 WorkPeriod와 Address를 가질 때 WorkPeriod와 Addres에 @Embedded를 선언하는데요.
이러한 임베디드 타입의 장점은 아래와 같고
@Embeddable 클래스는 보통 마스터 테이블로 쓰이는지에 대해 질문을 남기셨는데,
임베디드 타입은 결국 엔티티의 값(ex) zipcode, city, street)을 Address로 합친 값일 뿐이고,
값 타입의 생명주기 또한 엔티티에 의존합니다.
감사합니다.
그리고 값 타입은 잘 변경되지 않거나 변경되어도 비즈니스 상 추적할 필요가 없어 엔티티로 승격할 필요가 없는 데이터에 선언하면 될 것 같습니다.