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,世界清净了。


  • 相关阅读:
    在Visual Studio 2013中修改远程Git服务器的地址
    自定义TFS工作项“所有链接”列表中的列
    在权限受限制的AD域环境中部署SQL Server AlwaysOn高可用性
    spring boot常用注解
    在线编辑器(WangEditor)
    报表生成(POI,jquery.table2excel.js,Echarts)
    java 相关书籍介绍
    poj2456 Aggressive cows
    poj1064 Cable master
    洛谷P1396 营救
  • 原文地址:https://www.cnblogs.com/yangykaifa/p/6753106.html
Copyright © 2011-2022 走看看