我有以下两个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未保存的对象。但通知数据已正确保存。
提前致谢!
答案 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>
谢谢你们!