1

2 つのバッグを持つクラスがあります。1 つのバッグはクラスのコレクションで動作し、もう 1 つは long 値のコレクションで、これは永続化されません。これについてすべてのウェブを検索しましたが、マッピングは問題ないようです。

私のマッピングでは、これがあります:

  <class name="Event" table="Events">
    <id name="Id" type="Int32">
        <generator class="native" />
    </id>
    <property name="Name" />
    <property name="Owner" />
    <many-to-one name="DeliveryAddress" column="DeliveryAddressId" cascade="save-update, persist" />
    <many-to-one name="EventAddress" column="EventAddressId" cascade="save-update, persist" />
    <bag name="Friends" table="Event_Friends" lazy="false" inverse="true" cascade="save-update, persist" fetch="join">
      <key column="EventId" />
      <element column="Friend" type="Int64" />
    </bag>
    <bag name="Products" table="Event_Products" lazy="false" inverse="true" cascade="all,delete-orphan" fetch="join">
      <key column="EventId" />
      <one-to-many class="Product" />
    </bag>
  </class>

セッション NHibernate で SabeOrUpdate を呼び出すと、両方のアドレスが作成され、イベントとすべての製品が作成されますが、フレンド リストは保存されません。保存後、Get を発行すると、データベースの選択が正しくなります。他に何ができるかわかりません。

このマッピングの私のモデルは次のとおりです。

public class Event
{
    public virtual int Id { get; set; }
    public virtual string Name { get; set; }
    public virtual Int64 Owner { get; set; }
    public virtual Address DeliveryAddress { get; set; }
    public virtual Address EventAddress { get; set; }
    public virtual ICollection<Int64> Friends { get; set; }
    public virtual ICollection<Product> Products { get; set; }
}

私のデータベースは次のようになります。

Events
-------------------------------
Id                int     identity
Name              varchar
Owner             long
DeliveryAddressId int
EventAddressId    int

Address
-------------------------------
Id                int
-- Code Abbreviated --

Event_Products
-------------------------------
Id                int
EventId           int
-- Code Abbreviated --

Event_Friends
-------------------------------
EventId           int
Friend            long
4

1 に答える 1

2

falselong のコレクションに対して逆に変更する必要があります

<bag name="Friends" table="Event_Friends" lazy="false" inverse="false" cascade="save-update, persist" fetch="join">
  <key column="EventId" />
  <element column="Friend" type="Int64" />
</bag>
于 2012-08-03T10:15:37.477 に答える