저는 봄, 겨울잠, 그리고 처음으로 DDD를 따르는 전자 상거래 웹 사이트를 만들려고합니다.지도 사용자, 주소, DDD가있는 국가
현재 상황은 이렇습니다. 나는 주소 목록 (이전의 것들과 현재의 것)을 가진 집계 루트로서 객체 USER를 고려하고 있고 모든 주소에 대해 국가 (아이소 코드, 이름)가 연관되어있다.
나는 주소와 국가 가치 개체입니다 .. 엄격하게 사용자와 관련이 있습니다. @Entity 클래스 사용자에
가 : @ElementCollection @CollectionTable (이름 = "주소", joinColumns = @JoinColumn을 (이름 = "address_id")) @OrderColumn (이름 = "USER_ID") 개인 목록 주소;
@Embeddable 클래스 주소 초기화 할 때 채울 수있는 국가에 대한 별도의 테이블을 만들고 싶습니다. 주소에는 외래 키만 있습니다.
나는 @Embeddable 나라를 시도하고 주소 에 @Embedded 개인 나라 국가또한 @SecondaryTable ..하지만이 .. @Entity 클래스에서만 사용할 수 있습니다 그래서 문제는 나라의 필드가 주소 표 안에 저장됩니다.
국가 별 @Entity를 만들어야합니까? 아니면이 클래스를 매핑하는 또 다른 방법이 있습니까?
감사
Eric Evans의 책을 읽었습니까? –
절대적인 문장을 만드는 것을 좋아하지는 않지만이 경우에는 예외를 만들 것입니다. ** 절대적으로, 데이터베이스 스키마가 도메인 모델의 디자인에 어떤 영향도 끼치 지 않도록해야합니다. * * DDD 101. – MattDavey