Doctrine 2 で 2 つの MySQL テーブル間の関係をマッピングしようとしています。私の所有エンティティは「キャンペーン」で、「チャネル」に結合しています。
キャンペーン レコードを保存するときは、チャネル ID が含まれている必要があります。キャンペーンが取得されたら、この ID を使用してチャネルに参加し、(チャネル テーブルから) チャネル名を表示したいと考えています。これは 1 対 1 の一方向の関係だと思います。間違っていたら訂正してください。
Doctrine 2 XML を使用してマッピングを次のように指定しました。
<one-to-one field="channelId" target-entity="Channel" fetch="EAGER">
<join-column name="channel_id" referenced-column-name="id" />
</one-to-one>
キャンペーン エンティティを設定して永続化しようとすると、次のエラーが発生します。
永続操作をカスケードするように構成されていない関係を通じて、新しいエンティティが見つかりました: Mvc\Entity\Channel@0000000034b3dcd500000000cc77faae. 新しいエンティティを明示的に永続化するか、関係に対してカスケード永続化操作を構成します。
これをどのように保持するかを指定する必要があります。チャネル エンティティを変更または保存したくありません。「アソシエーション マッピング」に関する Doctrine 2 のドキュメントを調べましたが、これがどのように可能であるか理解できません。
ありがとうございました。