zoukankan      html  css  js  c++  java
  • Hibernate的多表关系

    多表关系

    一对多/多对一
      O 对象         一的一方使用集合. 多的一方直接引用一的一方.
      R 关系型数据库   多的一方使用外键引用一的一方主键.

      M 映射文件:

    一: <set name="">
    		<key column="" />
    		<one-to-many class="" />
        </set>
    多: <many-to-one name="" column="" class="" />
    

      

      操作: 操作管理级别属性. 

    cascade: 级联操作

    //减少我们书写的操作代码.

    none(默认值)   不级联

    save-update:   级联保存

    delete:级联删除

    all:   级联保存+级联删除

    结论: 可以使用save-update.不推荐使用delete. 也可以不用cascade.

    inverse: 反转关系维护

    属于性能优化.关系的两端如果都书写了关系.那么两方都会发送维护关系的语句.

    这样,语句就发生重复.我们可以使用inverse使一的一方放弃维护关系.

    true放弃

    false(默认值)维护

    结论: 在一对多中,一的一方可以放弃维护关系.

    多对多

      O 对象两方都使用集合. 

    R 关系型数据库使用中间表.至少两列.作为外键引用两张表的主键.

      M 映射文件:

    多: <set name="" table="中间表名" >
    		<key column="别人引用我" />
    		<man-to-many class="" column="我引用别人的" />
        </set>
    

      操作:操作管理级别属性. 

    cascade: 级联操作

    减少我们书写的操作代码.

    none(默认值)   不级联

    save-update:  级联保存

    delete:级联删除

    all:级联保存+级联删除

    结论: 可以使用save-update.不推荐使用delete. 也可以不用cascade.

    inverse: 反转关系维护

    //属于性能优化.必须选择一方放弃维护主键关系.哪方放弃要看业务方向.

  • 相关阅读:
    centos7.5搭建zabbix3.4.x以及mysql定制化监控
    dockerfile 的常用讲解
    使用nginx快速搭建文件服务器
    centos7 安装ELK
    centos7 安装Gitlab
    centos7 安装jenkins
    ansible-playbook使用详解
    DNS主从配置
    ansible 安装部署文档
    WPF Grid MouseWheel事件无法触发
  • 原文地址:https://www.cnblogs.com/money131/p/10691506.html
Copyright © 2011-2022 走看看