위의 그림의 Value타입은 기본적인 Value타입이다.
Composite Value타입은 기본적인 Value타입보다 단위가 조금 더 크다.
흔한 예시로 address가 있다.(address는 엔티티가 아니라는 가정)
Account 안에 속한 데이터 중에 하나로 취급하는 것이다.(Account에 종속적)
즉, Account가 만들어지면, address도 같이 만들어지고, Account가 삭제되면 속해있는 address도 같이 삭제가된다.
Composite Value타입은 @Embeddable
애노테이션을 붙여서 만든다.
Composite Value타입을 사용할때는 @Embedded
를 붙여서 사용한다.
실행시키면 Composite Value타입의 속해있는 것들도 다 테이블로 매핑됨을 알 수 있다.
@AttributeOverrides로 각각의 하위 멤버변수들도 각각 오버라이드 할 수 있다.