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已经知道了关系。

原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/14405.html

(0)
上一篇 2021年7月19日
下一篇 2021年7月19日

相关推荐

发表回复

登录后才能评论