Hibernate的关联映射

1.关系的分类
单向关系

  • 1 →1
  • 1→N
  • N→1
  • N→N
双向关系

  • 1 - 1
  • 1 - N
  • N - N
2.无连接表的情况

2.1单向(只需在某一方书写@OneToOne、@OneToMany、@ManyToOne、@ManyToMany的注解,而另一方则为最普通的@Entity和@Table修饰的实体类即可)

2.1.1:   1→N(书写在1的一方的实体中的相应属性值上)

@OneToMany

@JoinColumn(该外键列并不在本类中,而是在关联的实体类所对应的表中)

2.1.2: N→1(书写在N的实体类中)

@ManyToOne

@JoinColumn

2.1.3: N→N(书写在某一个N的类中,该关系必须要有连接表(中间表))

@ManyToMany

@JoinTable

2.1.4: 1→1(书写在某一个类中)

@OneToOne

@JoinColumn


2.2双向的连接情况(每个类的注解如下,左右对应)

2.2.1:                1                                        ---                                 1

                           @OneToOne(mappedBy)                                   @OneToOne

                                                                                                      @JoinColumn

2.2.2                   1                                        ---                                N

                           @OneToMany(mappedBy)                                 @ManyToOne

                                                                                                         @JoinColumn

2.2.3                    N                                      ---                                  N

                            ManyToMany(mappedBy)                                   @ManyToMany

                                                                                                           @JoinTable

3.有连接表的情况下,不再基于外键(只书写了可能会使用到的,基本不可能使用到的则未书写)

3.1单向

3.1.1:  1→N

@OneToMany

@JoinTable

3.1.2:  1→1

@OneToOne

@JoinTable

3.1.3:N→1

@ManyToOne

@JoinTable

3.2双向

3.2.1:   1  --  N

@OneToMany(mappedBy)                                  @ManyToOne

@JoinTable(只有在没有mappedBy的时候才书写,且与另一个类中的JoinTable对应属性相同)                                                                                                                                @JoinTable


注解属性书写说明:

1.@OneToMany,@OneToOne,@ManyToMany,@ManyToOne的注解的常用属性值:cascade、fetch、targetEntity(书写上之后会有效率的提升)

2.@JoinTable的属性值(主要包括三个):name、joinColumns(配置外键信息,参照当前类的主键列)、inverseJoinColumns(配置外键信息,参照关联实体类的主键列)

3.mappedBy:表示放弃管理关联的实体,交给另一方来维护,只在双向关联中使用。

4.@JoinColumn的主要属性值:name,referenceColumnName,unique




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

长了脚の妖怪

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值