私のデータベースには1対多の関係があります。編集、削除、追加以前は、要素は問題なく動作していました。しかし、いくつかの変更 (すべてをさかのぼることはできません) の後、動作しなくなりました。
現在、1 対多の関係を持つオブジェクトを取得すると、多側のコレクションを表す永続コレクションが取得されます。以前はそうではなかったと思います。コンストラクターでは、永続コレクションではなく、新しい配列コレクションを作成します。
教義の文書を調べたところ、次のことがわかりました。
PersistentCollection は、永続的な状態を持つ要素のコレクションを表します。
それが何を意味するのか分かりません。
教えてください:
- 単純な 1 対多の永続コレクションを持つことは普通ですか?
- これらのコレクションはどのように表示されますか? (通常の ArrayCollection ではなく)
- 最後に、永続コレクションの用途は正確には何でしょうか?
ベストアンサー1
1. 単純な 1 対多の永続コレクションを持つことは普通ですか?
いいえ、正常なのは ArrayCollection です。これまで PersistentCollection を使用する必要はありませんでしたが、場合によっては役立つ便利な機能がいくつかあります。
http://www.doctrine-project.org/api/orm/2.1/class-Doctrine.ORM.PersistentCollection.html
- これらのコレクションはどのように表示されますか? (通常の ArrayCollection ではなく)
これらはコレクションであり、その型を持つエンティティを内部に持つ通常の ArrayCollection と同じように表示されます。
- 最後に、永続コレクションの用途は正確には何でしょうか?
ドキュメントでわかるように、PersistentCollection には ArrayCollection にはない多くの機能があり、PersistentCollection は EntityManager を使用するため、永続化せずにフラッシュするだけでデータベースと対話できます。