Doctrine2 - невозможно удалить объект с однонаправленным отношением oneToMany
получая нарушение внешнего ограничения при попытке удалить объект, содержащий однонаправленные связи «один ко многим». У меня есть следующий простой класс:
class Dealer{
/**
* @ManyToMany(targetEntity="Car", cascade={"persist", "remove"})
* @JoinTable(name="dealer_cars",
* joinColumns={@JoinColumn(name="dealer_id", referencedColumnName="id")},
* inverseJoinColumns={@JoinColumn(name="car_id", referencedColumnName="id",
unique=true)}
* )
**/
protected cars;
}
Car
В этом случае объект не должен содержать отношения к своему владельцу (отсюда и однонаправленные отношения). Если я попытаюсь удалитьDealer
Объект, содержащий ассоциации с автомобилями, получает следующее ограничение ограничения:
Cannot delete or update a parent row: a foreign key constraint fails
(`application`.`dealer_cars`, CONSTRAINT `FK_E1BCEEEBC3C6F69F`
FOREIGN KEY (`car_id`) REFERENCES `car` (`id`))'
Я получил бы то же сообщение, если бы попытался удалить строку дилера вручную из таблицы базы данных, но я подумал, что Doctrine, используя cascade = "Удалить", позаботится об этом для меня.
Если я изменяю ассоциацию на двустороннюю ассоциацию, это работает. Почему это не работает с однонаправленными ассоциациями?