Doctrineで混同しがちな cascade={"remove"}、 onDelete="CASCADE"、 orphanRemoval=true について整理してみる Symfony Advent Calendar 2016 22日目の記事です。 はじめに Doctrineは多機能で私も開発においてはたいへん便利に使っています。反面、多機能がゆえにどの機能が何を提供してくれるのか把握できていないために苦労することもしばしばです。 ここでは私がいつもどれがなにを示すのかわからなくて毎回ドキュメントを見ながら使っていたcascade={"remove"}、onDelete="CASCADE"、orphanRemoval=trueの記述がもたらす各振舞についてこの場を借りて整理してみたいと思います。 前提 エンティティとしてUserとProfileがあり、UserがProfileを1つ所有し