symfony2 foreign keyの登録でハマる

symfony2 doctrineであるテーブルのforeign keyが登録されない事象が発生。

どうやらpersist -> flushするオブジェクトが参照先のEntityを知っておかないと駄目な模様。

$em->persist($hoge);
$em->flush();

こーなってたコードを

$fooRepository = $em->getRepository('Foo');
/*
  * 遅延読み込みで proxyオブジェクトが返却される。みたい。
  * http://docs.symfony.gr.jp/symfony2/book/doctrine.html
  */
$foo = $fooRepository->find( $hoge->getFooId() );

//fooEntityの関連付け
$hoge->setFoo( $foo );
$em->persist($hoge);
$em->flush();

こうしたら動作した。


formTypte側で関連づけできる時は気にする必要ないんだろうけど。。。