zoukankan      html  css  js  c++  java
  • Hibernate 关联映射(三)

    一、lazy = "true" 延时加载和及时加载;

      1、一对多关系 

         <set name="list" lazy="true" cascade="all" inverse="true">
                <key column="tid"></key>
                <one-to-many class="com.entity.Goods"/>
            </set>

      2、多对一

          <many-to-one name="type" class="com.entity.Type">
                <column name="tid"></column>
            </many-to-one>

      3、多对多

            <set name="users"  table="userproject" >
                <key>
                    <column name="pid"></column>
                </key>
                <many-to-many entity-name="com.entity.User">
                    <column name="uid"></column>
                </many-to-many>
            </set>

    二、cascade属性 级联属性

      none 当Session操纵当前对象时,忽略其他关联的对象。它是cascade属性的默认值
      save-update 当通过Session的save()、update()及saveOrUpdate()方法来保存或更新当前对象时,级联保存所有
      关联的新建的瞬时状态的对象,并且级联更新所有关联的游离状态的对象

      merge 当通过Session的merge()方法来保存或更新当前对象时,对其关联对象也执行merge()方法


      delete 当通过Session的delete()方法删除当前对象时,会级联删除所有关联的对象

      all 包含所有的级联行为

    三、inverse;只能出现在一方,对象间的关系由谁维护

      inverse属性指定了关联关系中的方向
      inverse设置为false,则为主动方,由主动方负责维护关联关系,默认是false
      inverse设置为true,不负责维护关联关系

      经验:
        1. 在建立两个对象的双向关联时,应该同时修改两个关联对象的相关属性
        2. 建议inverse设置为true

      cascade="all" 和 inverse="true" 就是给它所属的对应的对象增加的功能;

    <set name="list" lazy="true" cascade="all" inverse="true">
            <key column="tid"></key>
            <one-to-many class="com.entity.Goods"/>
    </set>
  • 相关阅读:
    APIO2015雅加达的摩天楼
    索引(填坑进度:0.1‰)
    树形 DP 笔记 · 一
    「已弃坑」DP 优化的各种姿势 (From CF)
    C++ 的位运算:__builtin, bitset
    LA 7158. ACM-ICPC World Finals 2015 I. Ship Traffic
    LA 7155. ACM-ICPC World Finals 2015 F. Keyboarding
    LA 7150. ACM-ICPC World Finals 2015 A. Amalgamated Artichokes
    LA 7587. ACM-ICPC World Finals 2016 L. Swap Space
    LA 7578. ACM-ICPC World Finals 2016 C. Ceiling Function
  • 原文地址:https://www.cnblogs.com/newbest/p/9314488.html
Copyright © 2011-2022 走看看