엔티티 컬렉션 인 "AnnualReportStaffing"을 허용하는 엔티티 "AnnualReport"가 있습니다. 연례 보고서에는 4 가지 Staffing 섹션이 있으므로이 4 가지 컬렉션 (ArrayCollection)이 있습니다. 기존의 일대 다 관계를 사용할 수 없기 때문에 here과 같이 Join Table을 사용하여 일대 다수를 사용해야합니다.Symfony2와 Doctrine : 조인 테이블 고아 제거를 사용한 일대 다수
따라서, 예를 들어, 내 인력의 컬렉션 중 하나는 내 년차 클래스에서 같은 정의: 그것이 년차를 삭제하는 시간을 때
/**
* @ORM\ManyToMany(targetEntity="AnnualReportStaffing", cascade={"persist"}, orphanRemoval=true, fetch="LAZY")
* @ORM\JoinTable(name="annualreports_staffingtenure",
* joinColumns={@ORM\JoinColumn(name="staffing_id", referencedColumnName="id")},
* inverseJoinColumns={@ORM\JoinColumn(name="annualreport_id", referencedColumnName="id")},
* )
*/
private $staffing;
지금, 교리는 보고서와 인력 사이의 관계를 제거 조인 테이블 내부에 있지만 연관된 AnnualReportStaffing 엔티티는 제거되지 않습니다. 나는 cascade = { "remove"}를 추가하려고 시도했지만 join 테이블 연결이 삭제되기 전에 Staffing 엔티티를 제거하려고하기 때문에 외래 키 위반이 발생합니다.
고아 스태핑 엔티티를 제거하는 가장 좋은 방법은 무엇입니까? 분명히 orphanRemoval = true가 답이 아닙니다.
보고서 열에 필요했지만 이는 고아 직원 구성 엔티티를 삭제할 때 차이가 없었습니다. – Ravioli87