0

我有以下两个带有 hibernate 的表:一对多关系。

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查询。

通知通知 = ......; (对象被插入到这个Notification对象中)

getHibernateTemplate().merge(通知);

所以,问题是 Preference 的对象没有保存。但通知的数据已正确保存。

提前致谢!

4

1 回答 1

0

我已经在自己身上找到了答案。答案是将(一对多)休眠配置中的属性inverse="true"更改为false。如果我将 inverse 设置为true,我必须配置另一个类中的另一个多对一配置。

如果我在上面提出的问题的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 回答