PersistentCollectionとは何ですか? 質問する

PersistentCollectionとは何ですか? 質問する

私のデータベースには1対多の関係があります。編集、削除、追加以前は、要素は問題なく動作していました。しかし、いくつかの変更 (すべてをさかのぼることはできません) の後、動作しなくなりました。
現在、1 対多の関係を持つオブジェクトを取得すると、多側のコレクションを表す永続コレクションが取得されます。以前はそうではなかったと思います。コンストラクターでは、永続コレクションではなく、新しい配列コレクションを作成します。

教義の文書を調べたところ、次のことがわかりました。

PersistentCollection は、永続的な状態を持つ要素のコレクションを表します。

それが何を意味するのか分かりません。

教えてください:

  1. 単純な 1 対多の永続コレクションを持つことは普通ですか?
  2. これらのコレクションはどのように表示されますか? (通常の ArrayCollection ではなく)
  3. 最後に、永続コレクションの用途は正確には何でしょうか?

ベストアンサー1

1. 単純な 1 対多の永続コレクションを持つことは普通ですか?

いいえ、正常なのは ArrayCollection です。これまで PersistentCollection を使用する必要はありませんでしたが、場合によっては役立つ便利な機能がいくつかあります。

http://www.doctrine-project.org/api/orm/2.1/class-Doctrine.ORM.PersistentCollection.html

  1. これらのコレクションはどのように表示されますか? (通常の ArrayCollection ではなく)

これらはコレクションであり、その型を持つエンティティを内部に持つ通常の ArrayCollection と同じように表示されます。

  1. 最後に、永続コレクションの用途は正確には何でしょうか?

ドキュメントでわかるように、PersistentCollection には ArrayCollection にはない多くの機能があり、PersistentCollection は EntityManager を使用するため、永続化せずにフラッシュするだけでデータベースと対話できます。

おすすめ記事