Symfony2でORMとして使われているDoctrine2における、エンティティの状態の扱い方に関連する問題ですね。最初は戸惑うポイントだと思います。 最初に注意が必要なのは、Doctrineでは「データベースのレコード」ではなく、「オンメモリのオブジェクト」を中心に考えなくてはならないということです。 Doctrineでのエンティティ管理の基本 アプリケーションの側から見ると、 アプリケーションのコード → Doctrineの世界 → DBの世界 というように、明示的にDBの世界との間にDoctrineの世界が設けられます。 この3つの世界間で、 新規エンティティ登録 既存レコードの読み込み 既存レコードの変更 は次のようになっています。 新規エンティティの登録時 $plan = new Plan(); // アプリケーションで、新規エンティティのインスタンス ↓ $entityMan
![Symfonyでpersist()するときにどうやって既に登録されているEntityか否かを判断しているのか](https://cdn-ak-scissors.b.st-hatena.com/image/square/f6bc393cd0b6bd2196935e603c5d031bd6ca6699/height=288;version=1;width=512/https%3A%2F%2Fcdn.sstatic.net%2FSites%2Fja%2FImg%2Fapple-touch-icon%402.png%3Fv%3D1cfb10b305ca)