私はSymfony2とDoctrine2.0を使用しています。XMLフィードからデータを読み取り、これをデータベース内の新規または既存のエンティティにマップしようとしています。XMLフィードのデータが変更された場合、既存のエンティティを更新する必要がありますが、データが追加された場合は、新しいエンティティを作成する必要があります。
私のエンティティクラスでは、次の非正規化メソッドを使用して、XMLデータをエンティティのプロパティにマップしています。
function denormalize(SerializerInterface $serializer, $data, $format = null)
(Symfony \ Component \ Serializer \ Serializerで定義され、エンティティクラス内で呼び出されます)
このメソッドのドキュメントには、「denormalize()呼び出しは、実装者のすべての子オブジェクトを再帰的に非正規化する必要があることを理解することが重要です」と記載されています。これが私がやろうとしていることです。ただし、エンティティはEntityManagerについて知らないはずなので、denormalize()メソッド内で、関連する/子エンティティがすでに存在するかどうかを確認するにはどうすればよいですか?
よろしく、マシュー