Hibernate一对多关系,用于将数据保存到多个表

时间:2012-05-29 06:22:51

标签: java hibernate entity-relationship

我有以下两个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>


  

(注意:在通知类中,我有一个像成员一样的成员   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()合并(通知);

因此,问题是Preference未保存的对象。但通知数据已正确保存。

提前致谢!

1 个答案:

答案 0 :(得分:0)

我找到了自己的答案。答案是将(一对多)休眠配置 inverse =“true”中的属性更改为 false 。如果我将逆设置为 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>

谢谢你们!