문제

집계 뿌리에 대한 나의 이해가 정확하다면, 뿌리는 "어린이"중 하나를 삭제하는 데 책임이 있어야합니다. 그것은 다음과 같은 것으로 보이는 것 같습니다.

order.removeOrderLine(23);

컬렉션에서 효과적으로 제거 할 것입니다. 그러나 이것은 어떻게 지속됩니까? 내 ORM의 UnitoFwork가 해당 컬렉션에서 무언가 빠진 것을 감지 한 다음 데이터베이스에서 삭제해야합니까?

RemoveArderline 대신 Oriertrepository의 메소드를 가져야합니까?

도움이 되었습니까?

해결책

귀하의 작업 단위는 일반적으로이를 처리해야하지만, 특히 변경 사항을 감지하는 방식에 따라 구현에 따라 다릅니다. 일부 작업 단위 (예 : 최대 절전 모드)는 변경하기 전에 집계 사본을 보관하므로 비즈니스 거래가 끝나면 (unitofwork.persistall ()와 같은 것을 호출 할 때 모든 객체의 현재 버전과 일치합니다. 원본 버전에 대한 컬렉션).

다른 방법으로 도메인 엔티티가 작업 단위와 더 결합하여 엔티티가 무언가가 변경 될 때 작업 단위에 알리도록하는 것입니다 (예 : 순서.

UOW 변경 감지를 구현하는 방법에는 여러 가지가 있습니다. 영감을 얻기 위해 Hibernat의 여러 구현을 살펴보십시오.

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