문제

가치 객체에 대한 respositories가 없기 때문에. 모든 값 객체를 어떻게로드 할 수 있습니까?

블로그 응용 프로그램을 모델링하고 있으며이 수업이 있다고 가정합니다.

  • 게시물 (엔티티)
  • 댓글 (값 객체)
  • 태그 (값 객체)
  • postrespository (respository)

새 게시물을 저장하면 태그가 같은 테이블에 저장된다는 것을 알고 있습니다. 그러나 어떻게 모든 게시물의 모든 태그를로드 할 수 있습니까? PostSrespository에 모든 태그를로드하는 메소드가 있어야합니까?나는 보통 그것을하지만 다른 사람들의 의견을 알고 싶습니다.

도움이 되었습니까?

해결책

이 질문에 대한 더 나은 솔루션을 찾고 있으며이 게시물을 찾았습니다.

http://gojko.net/2009/09/30/ddd-and-relational-databases-s-value-object-dilemma/

이 게시물은 왜 가치 객체 및 데이터베이스와 많은 혼란이 있는지 잘 설명합니다. 여기 당신은 나를 너무 좋아하는 문구입니다.

  • "지속성은 모든 것을 실체로 바꾸는 변명이 아닙니다."

Gojko Adzic, 우리에게 가치 객체를 저장하기위한 세 가지 대안을 제공하십시오.

다른 팁

나는 현재 비슷한 예를 통해 일하고 있습니다. 태그를 독창적으로 참조해야하면 긴 단순한 값 객체가 아니며 계속 복잡하게 성장할 수 있습니다. 나는 그들 자신의 엔터티를 만들고 그것들을 검색하기 위해 별도의 저장소를 만들기로 결정했습니다. 대부분의 시나리오에서는 게시물로로드 또는 저장되지만 단독으로 필요할 때 다른 저장소가 사용됩니다.

이게 도움이 되길 바란다.

편집 : 부분적 으로이 게시물 덕분에 응용 프로그램을 약간 재구성하기로 결정했습니다. 당신은 내가 아마도 엔티티를 잘못 만들었을 것입니다. 이후 태그가 문자열 일뿐 아니라 포스트 리포지토리가 태그 주변의 모든 스토리지 요구 사항을 처리하도록 애플리케이션을 변경했습니다. 게시물이 필요한 작업의 경우 태그가로드됩니다. 태그 또는 태그 목록이 필요한 작업의 경우 저장소에 메소드가 있습니다.

다음은 현재 DDD를 연습하는 방식으로 이러한 유형의 문제를 해결할 수있는 방법에 대한 저의 의견입니다.

게시물과 같이 태그를 추가하고 제거 해야하는 것을 편집하는 경우 태그는 엔티티 일 수 있지만 아마도 값 객체가 될 수 있으며 게시물과 함께로드 및 저장 될 수 있습니다. 나는 객체를 수정 해야하는 한 개인적으로 가치 객체를 선호하는 경향이 있지만 읽기 "스냅 샷"으로 만 모델링 된 엔티티 객체와 신원이 부족한 실제 가치 객체 사이에 차이가 있다는 것을 알고 있습니다. 까다로운 부분은 때때로 당신이 일반적으로 열쇠로 생각하는 것이 해당 맥락에서 정체성으로 사용되지 않는 한 값 객체의 일부가 될 수 있다는 것입니다. 태그 가이 범주에 속한다고 생각합니다.

태그 자체를 편집하는 경우 아마도 별도의 경계 컨텍스트이거나 태그 자체가 집계 루트이고 리포지토리를 통해 지속되는 별도의 집계 일 것입니다. 이 맥락에서 태그를 나타내는 엔티티 클래스는 포스트 골재에 사용되는 태그에 대해 동일한 엔티티 클래스 일 필요는 없습니다.

선택 목록을 제공하는 것과 같은 읽기 전용의 목적으로 표시 할 수있는 목록이 사용 가능한 태그를 사용하는 경우 이는 아마도 값 객체 목록 일 것입니다. 이러한 값 객체는 주로 UI를 지원하는 것이 아니라 실제 도메인에 관한 것이 아니기 때문에 도메인 모델에있을 수는 있지만 도메인 모델에있을 필요는 없습니다.

내가 왜 이것에 대한 내 생각이 잘못되었는지에 대한 생각이 있다면 차임하십시오. 그러나 이것이 내가하고있는 방식입니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top