我有以下关系:表格 - [订单] - 属性。 一个表单具有n个属性,属性可以属于n个表单。该关系需要保存额外的属性:order。
所以我有一个类表单,一个类属性和一个类form_attribute,如下所示:
public class FormAttribute{
Form form;
Attribute attribute;
int attrOrder;
// getters/setters
}
在Form映射上,我的映射如下:
<set name="attributes" table="form_attribute" inverse="true" cascade="all-delete-orphan" order-by="attrOrder" >
<key column="form" not-null="true"/>
<composite-element class="FormAttribute" >
<many-to-one name="attribute" column="attribute" class="ExamAttribute" not-null="true" cascade="save-update" />
<property name="attrOrder" column="attr_order" type="integer" not-null="true" />
</composite-element>
</set>
当我创建一个新表单并关联属性时,我希望在保存时看到填充的form_attribute表。但只有表格和属性表。这是正常的吗?我是否必须手动更新form_attribute关系?
答案 0 :(得分:1)
所以,最后这是一个愚蠢的问题。如果我不首先保存属性,并且由于属性端没有设置来管理表单和属性之间的链接,则不保存复合元素。首先保存新属性,然后保存表单解决了我的问题。