zoukankan      html  css  js  c++  java
  • (转)Hibernate关联映射——对象的三种关系

    http://blog.csdn.net/yerenyuan_pku/article/details/70148618

    Hibernate关联映射——对象的三种关系

    Hibernate框架基于ORM设计思想,它将关系型数据库中的表与我们java中的类进行映射,一个对象就对应着表中的一条记录,而表中的字段对应着类中的属性。数据库中表与表之间存在着三种关系,也就是系统设计中的三种实体关系。下面进行简单阐述。

    一对一

    创建表的原则有两种:

    1. 唯一外键对应 
      在任意一方添加一个外键来描述对应关系。如下图所示: 
       
      或者 
    2. 主键对应 
      一方的主键作为另一方的主键。如下图所示: 

    实体类的设计:

    • 员工类:

      public class Employee {
          // 其他属性...
          private Archives archives;
      }
    • 档案类:

      public  class Archives {
          // 其他属性...
          private Employee employee;
      }

    一对多(多对一)

    客户与订单之间的关系就是一对多(或者多对一)关系。 
    建表的原则:在多的一方添加外键来描述关联关系。如下图所示: 

    实体类的设计:

    • 客户类:

      public class Customer {
          // 其他属性...
          private Set<Order> orders;
      }
    • 订单类:

      public class Order {
          // 其他属性...
          private Customer c;
      }

    多对多

    学生与老师之间的关系就是多对多的关系。 
    建表的原则:通过一张中间表来描述其对应关系。如下图所示: 

    实体类的设计:

    • 学生类

      public class Student {
          // 其他属性...
          private Set<Teacher> ts;
      }
    • 老师类

      public class Teacher {
          // 其他属性...
          private Set<Student> ss;
      }
  • 相关阅读:
    mac下编写命令脚本
    mac环境mongodb安装小坑
    JS
    设计模式:装饰器
    proxy 数据帧听
    react hook 简单实现
    报错:java.lang.NumberFormatException: null
    git回滚到指定版本
    1109. 航班预订统计 力扣(中等) 差分数组 不会但神奇
    528. 按权重随机选择 力扣(中等) 前缀和rand()
  • 原文地址:https://www.cnblogs.com/telwanggs/p/6963775.html
Copyright © 2011-2022 走看看