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) によって参照されているため、Country(1) の削除は失敗し、City エンティティのみが削除されます。

問題は、Doctrine がトランザクション全体をロールバックするため、Country も City も削除されないことです。この動作を変更する方法はありますか?

4

0 に答える 0