私はnhibernateに新しくはありませんが、文字列のコレクションを保存/更新することはできません。Nhibernateは文字列のコレクションを保存しません
私にはエンティティがあり、このエンティティには3つの文字列のコレクション(Iesi.ISet<string>
)があります。
エンティティの文字列コレクションを変更し、Session.Save
、Session.Update
、Session.SaveOrUpdate
を呼び出します。何も機能しません。
これはすべてnhibernateの変換であり、トランザクションはコミットされています。私はそれがNHProfで起こっているのを見ることができます。エラーも例外もありません。 Nhibernateは単に自分のコレクションを無視します。
親エンティティを正常に更新します。
はい、カスケードが設定されています。 save-updateには、Iveもすべて削除を試みました。孤児は、実際には私が望むものです。
エンティティのコレクションはIese.Iset<string>
です。これらは、新しいIesi.Collections.Generic.HasheSet<string>()
を使用してエンティティのコンストラクタで初期化されます。
私は、マッピングファイルに貼り付けられます:
<?xml version="1.0" encoding="utf-8" ?>
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2" assembly="NameRemovedV2.Web" namespace="NameRemovedV2.Web.Models">
<class name="NameRemovedUser" table="NameRemovedUsers">
<id name="NameRemovedUserID">
<generator class="hilo"></generator>
</id>
<many-to-one cascade="save-update" class="NameRemovedSite" column="NameRemovedSiteID" name="Site" not-null="true" foreign-key="FK_NameRemovedSites_NameRemovedUsers"></many-to-one>
<property name="Username" not-null="true" unique="true" unique-key="UX_NameRemovedUsers"></property>
<property name="FirstName" not-null="false"></property>
<property name="LastName" not-null="false"></property>
<property name="EmailAddress" not-null="false"></property>
<property name="DealerCode" not-null="false"></property>
<property name="RegistrationDate" not-null="true"></property>
<set cascade="save-update" inverse="true" name="LeftSide" table="LeftSides">
<key column="NameRemovedUserID" not-null="true" foreign-key="FK_NameRemovedUsers_LeftSides"></key>
<element column="ElementID" not-null="true"></element>
</set>
<set cascade="save-update" inverse="true" name="RightSide" table="RightSides">
<key column="NameRemovedUserID" not-null="true" foreign-key="FK_NameRemovedUsers_RightSides" ></key>
<element column="ElementID" not-null="true"></element>
</set>
<set generic="true" cascade="save-update" inverse="true" name="Hide" table="Hides">
<key column="NameRemovedUserID" not-null="true" foreign-key="FK_NameRemovedUsers_Hides" ></key>
<element column="ElementID" type="String" not-null="true"></element>
</set>
</class>
</hibernate-mapping>
ありがとうございました。うまく修正しました。私はいつも逆にfalseを設定するのが適切なのかどうか疑問に思ってきました。 – Erick