은 즉 각
<-->
각 recipocal 관계가 그래픽 데이터 모델 편집기에서 즉시 분명 아니지만이 ... 정말 그 자신의 delet을 가진 두 개의 분리 된 관계 각이다 전자 규칙. 삭제 규칙이있는 엔티티의 개체가 삭제되면 삭제 규칙이 활성화됩니다.데이터 모델 편집기에서 당신이 관계 두 단체 Alpha
및 Beta
이있는 경우
그래서 :
Alpha.betas--(delete rule)-->>Beta.alpha
Beta.alpha--(delete rule)-->Alpha.betas
당신 :
Alpha.betas<-->>Beta.alpha
을 ... 당신은 정말 그렇게 같은이 개 관계를 never 다음과 같은 삭제 규칙을 설정하고 싶습니다.
Alpha.betas--(cascade)-->>Beta.alpha
Beta.alpha--(cascade)-->Alpha.betas
... Beta
인스턴스를 삭제하면 관련된 모든 Beta
개체의 삭제를 트리거하는 연관 Alpha
개체가 삭제되므로 데이터 모델의 세부 사항에 따라 상호 캐스케이드는 우연히 큰 데이터 청크를 삭제할 수 있습니다.
당신이 진정으로 원하는 것은 : 당신이 Alpha
개체를 삭제할 때
이
Alpha.betas--(cascade)-->>Beta.alpha
Beta.alpha--(nullify)-->Alpha.betas
지금, 그것은 모든 관련 Beta
오브젝트를 삭제합니다.
캐스케이드가 차단되면 일반적으로 필요한 관계에서 문제가됩니다. 데이터 모델의 세부 사항 없이는 확실하게 알 수 없습니다.
빠른 질문,'[context deleteObject : EntityA];를 실행하면 모든 베타가 바로 삭제 될 것입니다. 마지막으로 코드 스 니핏에서 설정 한 것처럼 설정하면됩니다. –
삭제를 차단하는 다른 것이 없다고 가정합니다. – TechZen
그러나 베타를 모두 삭제하면 어떻게됩니까? 이런 경우 자동으로 Alpha를 삭제하는 방법은 무엇입니까? – shoumikhin