hibernate关联关系的整理

原创 2018年04月15日 14:38:40
1、关联关系映射的步骤
    1.1关联关系的搭建  
            ---建表
            ---建实体
    1.2映射关联关系
    1.3使用测试            
2、映射关联关系
    1:1                    双向                                            单向
         *主表方:
            //关系属性                                        *主表方:
            //mappedBy="映射着外键的 对方中的属性"                //关系属性                                    
            @OneToOne(mappedBy="person51")                        @OneToOne(mappedBy="person51")
            private Passport passport51;                          @JoinColumn(name="person_id")//声明外键列是谁,自己维护外建
        *从表方:                                                 private Passport passport51;
            //关系属性                                        *从表方:
            @OneToOne//声明关系                                 //无关系属性
            @JoinColumn(name="person_id")//声明外键列是谁
            private Person person51;
                                        
    1:*                双向                            单向
        *主表方:                            *主表方:
           @OneToMany(mappedBy="user")          @OneToMany
        *从表方                                 @JoinColumn(name="user_id")
           @ManyToOne                        *从表方
           @JoinColumn(name="user_id")          无关系属性
           
        
    *    :*    
         //关系属性
        @ManyToMany02
        /*
         * name=关系表名称
         * joinColumns=关系表中,指向自己的外键
         * inverseJoinColumns=关系表中,指向对方的外键
         */
        @JoinTable(name="rel_s_c",
                   joinColumns={@JoinColumn(name="cour_id")},
                   inverseJoinColumns={@JoinColumn(name="stu_id")})
        *关系双方的映射,一致(双向都映射,单向只需一方映射 无主次)。        
        
3、注意事项:    
    3.1    1:1---删除时需要在对方解除关系(与方向无关) 从.get(主).set从(null)
               ---为主表添加从表维护关系 (与方向无关): 从表.setXXX(主表)//使得从表有外键来源
               ---级联保存双方维护关系(双向):  从表.setXXX(主表)  主表.serXXX(从表)
               ---级联保存双方维护关系(单向):  只需有外键的一方维护外键
           1:*---删除时不需要维护外键
               ---单向和双向的区别  --为主表附加从表 维护关系  主.set从(从)   session.update(主);
                                    --级联插入双方数据  维护关系   主.set从(从)
           *:*---为一方附加另一方  另一方.set(一方)  session.save(另一方)
               ---在已存在的双方之间搭建关系  一方.set(另一方) session.update(一方)
               ---级联保存  只在一方维护关系  A.set(B)
               ---单独删除一方无级联权限 
               ---级联删除:慎用=不用
    3.2    当更新 映射了外键的一方时,对象不能是new 出来的 (new 出来的对象关系不完整,
                  会导致hibernate去数据库中置空外键)
4、级联:
        查询级联默认,不受级联级别限制
              
              
              
              
    //获取表格选择行
                    var rows = $('#test1').datagrid('getSelections');
                    console.log(rows);
                    //判断是否选择行
                    if (!rows || rows.length == 0) {
                    $.messager.alert('提示', '请选择要删除的数据!', 'info');
                    return;
                    }
                    var parm;
                    //循环给提交删除参数赋值(音乐风格编码)
                    $.each(rows, function (i, n) {
                    if (i == 0) {
                    parm = "ids" + n.id;
                    } else {
                    parm += "&ids=" + n.id;
                    }
                    });
                    
                    $.messager.confirm('提示', '是否删除选中数据?', function (r) {
                    if (!r) {
                    return;
                    }
                    //提交
                    $.post('${pageContext.request.contextPath}/category/dropCategory', parm,
                    function (msg) {
                    if (msg.IsSuccess) {
                    $.messager.alert('提示', msg.Message, 'info', function () {
                    //重新加载当前页
                    $('#test').datagrid('reload');
                    });
                    } else {
                    $.messager.alert('提示', msg.Message, 'info')
                    }
                    });
                    });
                    
                    }          
              
              

Hibernate学习笔记(三)——Hibernate的关联关系映射

在数据库中存在四种关联关系映射,分别是一对一(one-to-one)、一对多(one-to-many)、多对一(many-to-one)和多对多(many-to-many),其中日常开发中比较常用的是...
  • u011024652
  • u011024652
  • 2016-09-24 20:27:55
  • 815

Hibernate案例与专题-关联关系

  • 2010年01月06日 20:09
  • 158KB
  • 下载

Hibernate关联关系.doc

  • 2010年09月08日 13:19
  • 37KB
  • 下载

hibernate关联关系注解配置

使用hibernate关联关系是最复杂也最重要的部分,本文对常用的关联关系进行总结,并通过代码验证 一、oneTomany  (单向) Father.java @Entity @Table...
  • lanyingtianshiabc
  • lanyingtianshiabc
  • 2015-08-24 16:24:44
  • 553

Hibernate建立多对一的单向关联关系

以下内容整理自《精通Hibernate》第二版 映射代码: 元素建立了customer属性和O...
  • nangongyanya
  • nangongyanya
  • 2015-07-21 22:24:37
  • 828

hibernate各种常用关联关系的基本配置

  • 2012年10月30日 15:16
  • 1KB
  • 下载

Hibernate中实体之间的关联

Hibernate中实体之间的关联关联描述了两个或多个实体如何基于数据库连接语义建立关系。1、多对一关联:多对一是最常用的关联,在关系数据库中也有直接的等价关系(例如,外键).因此它建立了一个子实体和...
  • qq_35051536
  • qq_35051536
  • 2018-03-07 21:56:05
  • 23

SSH:Hibernate框架(七种关联关系映射及配置详解)

概念          基本映射是对一个实体进行映射,关联映射就是处理多个实体之间的关系,将关联关系映射到数据库中,所谓的关联关系在对象模型中有一个或多个引用。   分类 ...
  • qq_27550755
  • qq_27550755
  • 2015-11-27 14:38:02
  • 7528

java hibernate 关联关系有什么作用

看本篇文章需要你对hibernate知识有一定的了解。我们在学每个新知识之前,都希望了解这个知识有什么用?在实际开发中有什么优势?是否便于理解和便于学习?等等问题。当了解这个知识点后,我们才用动力去学...
  • u014559227
  • u014559227
  • 2017-08-16 16:37:23
  • 115
收藏助手
不良信息举报
您举报文章:hibernate关联关系的整理
举报原因:
原因补充:

(最多只允许输入30个字)