`
mickey_hou
  • 浏览: 246636 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

project

阅读更多
单向关联   :当使用单向关联时,由父类管理关联关系,子类无法管理,而这时,父亲知道自己 的儿子,但是,从儿子对象不知道父亲是谁。单向关联时,只指定<one-to-many>
<set name="usageinfos" inverse="true"  cascade="none">
            <key>
                <column name="cloudUser_id" not-null="false" />
            </key>
            <one-to-many class="com.huawei.cloud.permanence.model.Usageinfo" />
</set> 
双向关联:关联关系的管理可以通过inverse指定,这时,儿子能清楚的知道自己的父亲是谁。 双向关联时,还要指定<many-to-one>
<many-to-one name="clouduser"  cascade="none" class="com.huawei.cloud.permanence.model.Clouduser" fetch="join">
            <column name="cloudUser_id" not-null="true" />
</many-to-one>

Cascade属性:控制进行级联操作  all : 所有情况下均进行关联操作。
                                               none:所有情况下均不进行关联操作。这是默认值。
                                               save-update:在执行save/update/saveOrUpdate时进行关联操作。
                                               delete:在执行delete时进行关联操作

inverse:属性,运用于双向关联
    FatherDao fatherDao = new FatherDao(); 
    Father father = new Father("David"); 
    Child child1 = new Child("David Junior One"); 
    Child child2 = new Child("David Junior Two"); 
    father.add(child1); 
    father.add(child2); 
    fatherDao.save(father); 
1. 如果cascade="all"且inverse="false"时:
    Hibernate: insert into father (name) values (?)       
    // cascade = 'all',所以进行级联操作 
    Hibernate: insert into child (name, fatherid) values (?, ?) 
    Hibernate: insert into child (name, fatherid) values (?, ?)       
    // inverse = 'false',由father来维护关系(可以看到这些操作是多余的) 
    Hibernate: update child set fatherid =? where ID=? 
    Hibernate: update child set fatherid =? where ID=?
2. 如果cascade = "none" 且 inverse = "false":
    Hibernate: insert into father (name) values (?)       
    // inverse='false',所以更新关系 
    Hibernate: update child set fatherid =? where ID=?       
    // 但由于cascade='none',child并未插入数据库,导致如下exception 
    org.springframework.dao.InvalidDataAccessApiUsageException: object references an unsaved transient instance    
3. 如果cascade = "all" 且 inverse = "true"
    Hibernate: insert into father (name) values (?)      
    // cascade='all',执行对child的插入 
    Hibernate: insert into child (name, fatherid) values (?, ?) 
    Hibernate: insert into child (name, fatherid) values (?, ?)       
    // 但由于inverse='true',所以未有对关系的维护。但由于一对多的关系中,关系本身在“多”方的表中。所以,无需更新关系。 
4. 如果cascade = "none" 且 inverse = "true"
    Hibernate: insert into father (name) values (?)       
分享到:
评论

相关推荐

    Android studio的make Project、clean Project、Rebuild Project

    Sync Project with gradle files:对gradle文件之后,或刷新gradle配置时使用; Make project:只是对项目中新产生或修改过的文件进行一次编译,已经编译过了的就不会编译了,耗时相对较短; Clean Project :删除...

    project2007中文教程(中文带Project cerver2007教程).pdf

    《项目管理:深入探索Microsoft Project 2007与Project Server 2007》 在信息化社会中,有效的项目管理对于企业的成功至关重要。Microsoft Project 2007作为一款强大的项目管理工具,帮助企业规划、执行和跟踪项目...

    Steelray Project Viewer key

    "Steelray Project Viewer key" 是一个关于项目管理软件——Steelray Project Viewer的许可证密钥或激活码。这个软件主要用于查看和分析Microsoft Project的文件,它提供了对MPP文件的详细视图,允许用户在没有完整...

    MSProject文件导入导出

    根据提供的信息,我们可以详细解析与MSProject文件导入导出相关的技术知识点。首先,这段代码主要涉及以下几个方面: ### 一、MSProject文件的基本操作 在.NET框架中,可以通过`Microsoft.Office.Interop.MS...

    Project Pro+Project Server操作说明

    Project Pro+Project Server操作说明 Project Pro+Project Server是一款强大的项目管理工具,能够帮助企业和团队更好地管理项目,提高项目的效率和质量。本文档旨在提供Project Pro+Project Server的操作说明,帮助...

    Project项目管理 42个案例

    《Project项目管理 42个案例》是一份深入探讨项目管理实践的宝贵资源,它涵盖了Microsoft Project(通常简称为MPP)在实际操作中的多种应用场景。Project是一款强大的项目管理软件,广泛应用于各种行业,帮助项目...

    windows project server服务器及客户端设置

    《Windows Project Server服务器及客户端设置详解》 在企业级项目管理中,Microsoft Windows Project Server扮演着至关重要的角色。它是一款强大的项目管理和协作平台,能够帮助组织有效地规划、执行和跟踪项目。...

    microsoft project完美详细教程

    Microsoft Project是一款强大的项目管理软件,由微软公司开发,旨在帮助项目经理进行项目规划、资源分配、进度跟踪、成本控制等任务。本教程将深入探讨Microsoft Project的各个方面,助您成为项目管理的高手。 一、...

    pycharm 实现显示project 选项卡的方法

    通过project tab查看项目的目录层级结构非常方便,今早打开pycharm后突然就发现自己的pycharm没有project选项卡了,各种折腾,来,记录下吧: 目前的界面是这样的: 我想要的界面是这样的,平时不占用界面写代码,...

    Project2003-2007转换器

    标题 "Project2003-2007转换器" 暗示了这是一个软件工具,主要用于将Microsoft Project 2003格式的文件转换为Project 2007的格式,或者反之亦然。在Microsoft Project中,不同的版本可能支持不同的文件格式,这可能...

    项目案例(完整的Project文件)_2.rar

    本项目案例提供了完整的Project文件,旨在作为参考,帮助用户理解和掌握Project在实际工作中的应用。 首先,我们要理解“项目进度控制”。项目进度控制是项目管理的一个关键组成部分,它涉及到监控项目进展,对比...

    从MS Project 导入内容 (C#)

    MS Project 文件导入与操作相关知识点 MS Project 是 Microsoft 公司推出的项目管理软件,它提供了强大的项目计划、执行和监控功能。随着项目管理的日益复杂化,使用 MS Project 来管理项目变得越来越普遍。然而,...

    Project快速入门全套视频课程.rar

    《Project快速入门全套视频课程》是一份专为初学者设计的教育资源,旨在帮助用户迅速掌握Microsoft Project的基础操作和项目管理核心概念。这份课程涵盖了从安装软件到创建、管理和优化项目计划的全过程,让学习者...

    microsoft Project 试题 50题(含答案)

    Microsoft Project 试题 50 题(含答案) 本资源提供了 50 道 Microsoft Project 试题,涵盖了项目管理的各个方面,包括任务相关性、计划排程、资源分配等。这些试题旨在帮助用户了解 Microsoft Project 的功能和...

    软件工程 项目管理实例 Project

    "软件工程 项目管理实例 Project" 提供了一套全面的项目管理资源,包含了20个具体的Project文件,这些文件旨在帮助我们理解和实践软件工程中的项目管理流程。以下是这些知识点的详细说明: 1. **项目规划**:每个...

    Steelray Project Viewer 安装软件(打开.mpp文件)

    《Steelray Project Viewer:专业解析.MPP文件的强大工具》 在项目管理领域,Microsoft Project创建的.MPP文件是广泛使用的项目计划和跟踪工具。然而,不是每个人都拥有或熟悉Microsoft Project,这时就需要像...

    SAP PS模块与MS Project集成插件

    SAP PS(Project System)模块是SAP企业资源规划系统中的一个重要组成部分,专门用于项目管理。这个模块设计的目的是为了支持复杂项目的计划、执行和控制,涵盖了从项目启动到关闭的整个生命周期。SAP PS提供了全面...

    Project导出成Excel的工具

    在IT行业中,项目管理软件Microsoft Project是用于规划和跟踪项目进度的重要工具。然而,有时我们需要将Project中的数据导出到更通用的格式,如Excel,以便于数据分析、共享或进一步处理。"Project导出成Excel的工具...

    mpxj解析ms project+生成xml文件

    在IT行业中,项目管理软件是不可或缺的工具,Microsoft Project(MS Project)就是其中的一款著名软件,广泛用于规划、跟踪和管理各种项目。然而,不同系统和应用之间有时需要数据交换,这时就需要对MS Project文件...

Global site tag (gtag.js) - Google Analytics