나는이 다음 (간체) 최대 절전 모드 엔티티 계단식하지 삭제합니다. 상위 컨텐츠는 패키지로 다시 연결되며 캐스케이드는 모두로 설정됩니다. 최상위 콘텐츠에는 많은 "하위"콘텐츠가있을 수 있으며 각 하위 콘텐츠에는 자체 하위 콘텐츠가 많이있을 수 있습니다. 각 하위 컨텐츠에는 상위 패키지 (상위 패키지와 동일한 패키지 일 수도 있고 아닐 수도있는 상위 패키지)가 있습니다 (예 : 패키지와 컨텐츠의 다 대일 관계).는 자체 참조 엔티티
관계는 ManyToOne (컨텐츠로 패키지) 및 ManyToMany (컨텐츠는 서브 컨텐츠로)가되어야하지만 현재 각 서브 컨텐츠를 테스트하고있는 경우 하나의 패키지 또는 컨텐츠에만 관련됩니다.
문제는 내가 패키지를 삭제하고 세션을 세척 할 때, 나는 최대 절전 모드 오류 난 여전히 테이블 subcontents
에서 참조 특정 content_id
로, 테이블 subcontents
에 외래 키 제약 조건을 위반하고있어 진술서를 얻을 수 있다는 것입니다.
패키지를 삭제하기 전에 내용을 구체적으로 (재귀 적으로) 삭제하려고 시도했지만 동일한 오류가 발생합니다.
이 엔티티 트리가 제대로 삭제되지 않는 이유가 있습니까?
편집
: 답변을 읽은 후/코멘트 나는 콘텐츠가 여러 패키지를 가질 수 없습니다, 그리고 하위 내용이 여러 부모 내용을 가질 수 없습니다 것을 깨달았다, 그래서 나는 OneToOne과 OneToMany에 ManyToOne 및 ManyToMany의 주석을 수정했습니다. 불행히도 그 문제를 해결하지 못했습니다.또한 Content에서 양방향 링크를 부모 패키지로 다시 추가했습니다.이 패키지는 단순화 된 코드에서 제외했습니다.
패키지와 콘텐츠 간의 관계는 양방향입니까 (코드에는이 내용이 표시되지 않지만 설명을 읽은 후에는 의심 스럽습니다). –
예, 관계는 양방향입니다. 단순화 된 코드에서 제외하지 않아야합니다. – jwaddell
흠 ... Package와 Content 사이의 카디널리티와 여전히 일치하지 않습니다. OneToOne 또는 OneToMany입니까? (현재 패키지에 대한 ManyToOne이 있습니까?) –