【Symfony2.3】StofDoctrineExtensionsBundleのSoftdeleteableとJMSSerializerを併せて用いている場合の注意。

結構ハマったのでメモ。

例えばニュースとカテゴリがMany-to-Oneで紐付いていたとする。(ニュースは一つのカテゴリを持つ)
この場合、ニューステーブルにカテゴリIDを保持するが、紐付いているカテゴリが論理削除済みであると、シリアライズ時に解決できないエラーに遭遇してしまうことが判明。

カテゴリを作成した後、そのカテゴリを紐付けてニュースを作成。その後紐付けていたカテゴリ自体を論理削除すると、ニューステーブルにはカテゴリIDが残ったままになる。
この状態でニュースエンティティをシリアライズしようとするとEntityNotFoundExceptionが発生し、処理が止まってしまう。
当然といえば当然だが、無ければ無いでnullをセットしておいて欲しいものである。

下記サイトのやりとりを見て判明。

https://github.com/schmittjoh/serializer/issues/101