3

我的想法是像在 GC 环境中处理简单对象一样无忧无虑地使用数据库(通过 ORM)。

基本思想是cascade-remove在表之间的大多数连接上使用,而只是跳过失败的步骤。举个简单的例子:

Country (id, name)
1, UK
2, Germany

City (id, name, country)
1, London, 1
2, Brighton, 1
3, Schweinfurt, 2

这样,当您删除 City(3) 时,删除将级联到 Country(2) 并且它也会被删除(因为它不再被引用)。

另一方面,如果您想删除 City(2),那么 Country(1) 的删除将失败 - 因为 City(1) 仍然引用它 - 并且只会删除 City 实体本身。

问题是 Doctrine 将回滚整个事务,因此 Country 和 City 都不会被删除。有没有办法改变这种行为?

4

0 回答 0