카테고리 없음
[최대 절전 모드] DELETE_ORPHAN과 DELETE의 차이점은 무엇입니까?
필살기쓰세요
2021. 1. 10. 01:49
Cascade DELETE는이 엔티티가 삭제되면 관련 엔티티를 삭제하는 것을 의미합니다.
DELETE_ORPHAN은 엔터티가 관련된 일대 다 컬렉션에서 제거 된 경우 현재 엔터티에서 연결을 해제 할뿐만 아니라 삭제함을 의미합니다.
예를 들어, House와 Room의 두 엔티티를 고려하십시오.
House의 Room 목록에서 DELETE는 House를 삭제하면 모든 Room을 삭제한다는 의미입니다.
House의 Room 목록에있는 DELETE_ORPHAN은 해당 컬렉션에서 Room을 제거하면 완전히 삭제한다는 의미입니다. 그것 없이는 방은 여전히 존재하지만 아무것도 붙어 있지 않을 것입니다 (따라서 "고아").
UML 및 OO 모델링 용어에서 이것은 기본적으로 구성과 집계의 차이점입니다. House-> Room 관계는 구성의 예입니다. 방은 집의 일부이며 독립적으로 존재하지 않습니다.
집계의 예는 클래스 (부모)에서 학생 (자식)으로입니다. 수업을 삭제하면 학생이 여전히 존재합니다 (의심 할 여지없이 다른 수업에 있음). 수업에서 학생을 제거한다고해서 일반적으로 학생을 삭제하는 것은 아닙니다.
출처
https://stackoverflow.com/questions/1904907