0
点赞
收藏
分享

微信扫一扫

【Hibernate学习笔记-6.1】无连接表的N-1关联(单向)

作者:ssslinppp      

1. 摘要

主要讲解N-1关系表的设计,N:从表,1:主表;

从表(N)中使用外键关联到主表(1),单向的;


场景:

许多人(N)可以住在同一个地方(1),知道人就可以知道这个人的地址;

反过来,知道地址,不能知道该地址住的人。


2. 数据表设计


地址表:

【Hibernate学习笔记-6.1】无连接表的N-1关联(单向)_N-1

【Hibernate学习笔记-6.1】无连接表的N-1关联(单向)_java_02


Person表:

【Hibernate学习笔记-6.1】无连接表的N-1关联(单向)_java_03

e【Hibernate学习笔记-6.1】无连接表的N-1关联(单向)_持久化_04



3. 实体类-注解方式


Address.java


【Hibernate学习笔记-6.1】无连接表的N-1关联(单向)_hibernate_05


Person.java

【Hibernate学习笔记-6.1】无连接表的N-1关联(单向)_Hibernate_06


  • @JoinColumn :用于定义外键,数据库层面的,name值是数据表中的字段值;
  • @ManyToOne  :java类层面的;
  • @Cascade   : 设置级联,系统先自动级联插入主表记录,再插入从表记录==>因为在插入从表(N)记录时,指定的外键不能为null,所以在插入从表记录之前,需要有对应的主表(1)记录存在,若不存在对应的主表记录,则会报错。这里设置@Cascade ,可以保证在主表记录还没有插入而是先插入了从表记录时,Hibernate会自动先将主表记录保存,然后再保存从表记录。这就是级联的意思。


4. 测试



【Hibernate学习笔记-6.1】无连接表的N-1关联(单向)_Hibernate_07

执行后的结果:

【Hibernate学习笔记-6.1】无连接表的N-1关联(单向)_hibernate_08【Hibernate学习笔记-6.1】无连接表的N-1关联(单向)_N-1_09






举报

相关推荐

0 条评论