0

私は休止状態の次の2つのテーブルを持っています:1対多の関係。

1)通知

<class name="Notification" table="notifications" > <id name="id" column="id"><generator class="native"/></id>

<set name="Preference" table="preference" cascade="all" inverse="true" lazy="false" fetch="select"> <key> <column name="user_id" not-null="true" /> </key>

<one-to-many class="Preference" /> </set> </class>


(注:Notificationクラス内に次のようなメンバーがいます
Set<Preference> Preference


2)好み

<class name="Preference" table="preference"> <id name="id" column="id"> <generator class="native"/> </id>

<property name="userId" column="user_id" />

<property name="sectorId" column="sector_id" />

<property name="stateId" column="state_id" /> </class>

私が使用したHiberanteクエリ

通知通知=......; (オブジェクトはこの通知オブジェクトに挿入されます)

getHibernateTemplate()。merge(notification);

したがって、問題は、設定のオブジェクトが保存されないことです。ただし、通知のデータは正しく保存されています。

前もって感謝します!

4

1 に答える 1

0

私は自分自身で答えを見つけました。答えは、(1 対多の) hibernate 構成inverse="true"の属性をfalseに変更することです。逆をtrueに設定した場合は、他のクラスで別の多対 1 構成を構成する必要があります。

上記で尋ねた質問のinvese="true"の場合、変更が必要です。

2) 好み

<class name="Preference" table="preference"> <id name="id" column="id"> 
<generator class="native"/> </id>
......
<many-to-one name="notification" class="Notification" fetch="select">
   <column name="id" not-null="true" />
</many-to-one>
</class>

みんなありがとう!!

于 2012-05-29T12:36:02.137 に答える