エンティティを挿入する場合は、次のようにします。
$user = new User();
$user->setEmail('john@doe.com');
$em->persist($user);
$em->flush();
しかし、1人のユーザーを持つことができる記事を作成したい場合はどうなりますか。
現在、私はする必要があります:
$user = $em->getRepository('User')->find($id);
$article->setUser($user);
これは関係のためであり、Doctrine2はユーザーエンティティを要求します。
ただし、IDを手動で設定したくないため、Userオブジェクトを「モック」することはできません。したがって、次のことはできません。
$user = new User();
$user->setId(45);
私はこの振る舞いについて間違っていますか、どうしますか?
キャッシュを使用している場合でも、関係を設定するためだけにUserエンティティをロードすることはパフォーマンスの問題になる可能性があります。これは、特に更新の場合、常にオプションであるとは限りません。