1

1 つ以上の製品関係を持つ製品があります。

エンティティ: Product および ProductRelation

したがって、製品にはプロパティ List(Of ProductRelation) があります

これで、この製品に割り当てたい製品の数を選択できるチェックボックス リストができました。

新しい製品で ProductRelations の新しいコレクションを追加すると、古い関係がすべて削除され、新しい関係が保存されます。しかし、これはうまくいきません。古いものは削除されず、新しいものも保存されません。

次のhbm.xmlを使用しました

<bag name="RelatedProduct" inverse="true" lazy="true" cascade="all">
  <key column="FromID" />
  <one-to-many class="Kiwa.Objects.RelatedProduct,Kiwa.Objects" />
</bag>
4

2 に答える 2

1

hbm ファイルが表示されません。:)

しかし、なぜ新しいコレクションを追加するのですか?
これが、物事がうまくいかない理由です。コレクションをクリア (コレクションからアイテムを削除) し、コレクション自体を置き換えることなく、新しいアイテムをコレクションに追加する必要があります。

于 2009-09-02T15:07:53.770 に答える
0

永続化されたマップ済みコレクションは、絶対に置き換えないでください。NHibernate は、削除を追跡するために、特定のコレクション インスタンス (エンティティの読み込み中に NHibernate によって作成/注入される) を必要とします。

代わりに、既存のコレクション内の個々の要素 (RelatedProductインスタンスなど) を削除/更新/置換する必要があります。以前に保存したすべての を本当に削除してRelatedProduct新しいものを挿入したい場合 (なぜですか?)、リストをクリアできますが、新しいインスタンスRelatedProductに置き換えないでください。List

于 2009-09-02T15:20:09.723 に答える