(转)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;
    }

转载于:https://www.cnblogs.com/telwanggs/p/6963775.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值