공통으로 아래와 같이 엔터티에
변경사항을 추적 관리하는 용도로
BaseClass를 상속받아 사용하는 케이스가 많습니다.
createdBy, updatedBy, createdAt, updatedAt
이 경우 일반적인 엔터티에서는 기존처럼 상속받아 사용하면 될것 같은데
도메인 모델에서 위 필드들을 사용할 때는
상속보다는 VO나 레코드로 별도 정의해서 사용해야 할까요?
강좌에서는 사례가 없어서 QA남깁니다.
감사합니다.
공통으로 아래와 같이 엔터티에
변경사항을 추적 관리하는 용도로
BaseClass를 상속받아 사용하는 케이스가 많습니다.
createdBy, updatedBy, createdAt, updatedAt
이 경우 일반적인 엔터티에서는 기존처럼 상속받아 사용하면 될것 같은데
도메인 모델에서 위 필드들을 사용할 때는
상속보다는 VO나 레코드로 별도 정의해서 사용해야 할까요?
강좌에서는 사례가 없어서 QA남깁니다.
감사합니다.
안녕하세요. 강의자입니다.
음 여러가지 방법이 있을텐데요.
가장 쉬운 방법은 말씀 하신 것 처럼 기본적인 base 클래스 유형( entity, vo) 등을 만든 후 base 클래스에 스프링 부트에서 제공하는 어노테이션을 사용하여 생성일자,수정일자 등을 생성하는 코드를 만든 후 상속하는 방법입니다. 이럴 경우 이러한 코드를 상속받는 vo등이 불변성이나 비지니스 규칙이 준수되는지 확인해야 하고요.
도메인 모델에 설정하는 스프링 어노테이션에 대한 거부감이나 도메인모델에 바로 or mapping을 하지 않는 아키텍처를 구성한 경우에는 수정일,생성일을 도메인 모델에 생성한후 비지니스 로직상에서 명시적으로 작성하게 하는 방법입니다.
경우에 따라 여러 선택이 있을 것 같네요.
감사합니다.
답글
Chulgil Lee
2024.05.02도메인 모델에서의 아키텍처를 구성할경우를 생각하고 있어서
명시적으로 작성하게 하는 방법을 고려해보겠습니다.
바쁘신와중 답변 감사합니다.