zoukankan      html  css  js  c++  java
  • hibernate之一对多和多对一中的inverse和cascade两个关键字的区别及使用

    inverse顾名思义控制反转

    <set name="setEmployees" table="employee" inverse="false" cascade="save-update,delete">
          <key column="dept_id"></key>
          <one-to-many class="Employee"/>
    </set>

    在集合中inverse默认是false,意思就是拥有对Employee的控制权,对第二张表的增删改查都有权限

    而把它的值改成了true后,就失去了改变第二张表的权限,也就是说,你查询第二张表可以,但是你要是想改变第二张表的数据,对不起不行

    而cascade属性顾名思义是级联的意思

    他的默认值为none,也就是说不会帮你级联到任何一张表,按道理我们用到这个属性会很少,因为他是一个危险的属性,就像你一般用delete不用drop来对一张表进行操作

    他的作用和inverse有点像,但是也有鲜明的区别

    cascade有五个值,"save-update","delete","save-update,delete","none","all"

    其中和inverse主要的区别是在于delete,cascade的比较僵硬,他在删除主表中的数据的同时附表的相关的数据也会一并删除,而inverse比较温柔,只是将附表的相关元素改为null,然后再去删除主表中你要删除的行

  • 相关阅读:
    如何提高AJAX客户端响应速度
    JS 数组间的操作
    Spring上传报错413
    设计模式-简单工厂模式学习笔记
    vue辅助函数mapStates与mapGetters
    Vue编程式跳转
    Vue父子,子父,非父子组件之间传值
    node.js中的fs.rename()方法
    map字典,储存cookie,切换账户,展示购物车不同商品
    Gulp
  • 原文地址:https://www.cnblogs.com/ShaoXin/p/7106167.html
Copyright © 2011-2022 走看看