Hibernate之一对多cascade,inverse

一个Student对应一个Classes,一个Classes包含多个Student;

<hibernate-mapping>
    <class name="com.po.Classes" table="classes">
        <id name="id" type="integer">
            <generator class="native" />
        </id>
        <property name="name" type="string">
        </property>
        <set name="students" cascade="save-update" inverse="true">
            <key column="classid" />
            <one-to-many class="com.po.Student"/>
       </set>
    </class>
</hibernate-mapping>

<one-to-one>元素的cascade属性表名操作是否从父对象级联到被关联的对象,它的取得可以是一下几种:

none:在保存,删除或修改当前对象时,不对其附属对象(关联对象)进行级联操作,是默认值

save-update:在保存,更新当前对象时,级联保存,更新附属对象(临时对象,游离对象);

delte:在删除当前对象时,级联删除附属对象。

all:所以情况下均进行级联操作,即包含save-update和delete操作


inverse属性默认是false的,就是说关系的两端都来维护关系。当在关系的一头,如Classes中的set中用了inverse="true"时,

那就代表关系是由另一端维护的(Student) 就是说当插入Student时,不会操作Classes表,即使Student已经知道了关系。


posted on 2011-12-31 21:18  itmyhome  阅读(165)  评论(0编辑  收藏  举报

导航