Hibernate复合元素映射

时间:2013-12-02 21:21:18

标签: java hibernate mapping

我有以下关系:表格 - [订单] - 属性。 一个表单具有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关系?

1 个答案:

答案 0 :(得分:1)

所以,最后这是一个愚蠢的问题。如果我不首先保存属性,并且由于属性端没有设置来管理表单和属性之间的链接,则不保存复合元素。首先保存新属性,然后保存表单解决了我的问题。