zoukankan      html  css  js  c++  java
  • Hibernate inverse属性与cascade属性

    理解:

    inverse属性为false的那一端。拥有管理关系维护的权利

    cascade属性指级联,说的通俗点,在cascade那端指定的操作。会影响到所关联的对象


    举个样例:

    班级和学生的关系是一对多

    班级class类包括id,名称和学生的Set集合

    学生student类包括id。姓名和班级的id(外键)


    cascade属性:学生是依赖班级存在的,班级不存在。那么学生也不存在。也就是说,删除班级的同一时候,学生也就得删除,而不能反过来。

    一的那端删除时,多的那方已经没有意义了;而多的那端删除时,并不能代表一的那端没有意义。

    有点绕。

    那么属性设置是。class 设置“all",student设置“save-update”,那样。对class的操作都能影响student。对student的操作之后保存和更新才影响class。


    inverse属性:这个属性是具有管理和维护权利的。在一对多的关系中,假设设置班级有这个权利,那么班级会管理维护学生集合。当保存班级时。就会更新全部学生集合里的外键属性,这不是我们想要的,当数量非常多时,性能不好。而假设把这个权利交给学生时,保存班级时。就不会更新学生集合里的属性,这个外键能够由我们自己手动设置。通俗点说就是。班级假设选择学生。那么会改动学生的班级属性;假设反过来,学生选择班级,学生里的班级属性已经设置了。不用班级去担心了。世界清净了。


    以上都是我个人的理解。网上看到的经验是:inverse属性通常是由多端维护,多对多的情况选择一端维护。不要两端都维护,cascade属性通常是一端设置“all”,多端设置“save-update”。


    ok,世界清净了。


  • 相关阅读:
    ES6 Syntax and Feature Overview
    Javescript——数据类型
    Javescript——变量声明的区别
    React之概述(待续)
    React之简介
    Vue.js学习之简介(待续)
    Build Telemetry for Distributed Services之OpenCensus:Tracing2(待续)
    docker之redis使用
    Build Telemetry for Distributed Services之OpenCensus:C#
    Build Telemetry for Distributed Services之Open Telemetry简介
  • 原文地址:https://www.cnblogs.com/yangykaifa/p/6753106.html
Copyright © 2011-2022 走看看