博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Hibernate(三)——框架中的关系映射
阅读量:5781 次
发布时间:2019-06-18

本文共 1917 字,大约阅读时间需要 6 分钟。

hot3.png

在设计数据库时我们会考虑,表与表之间的关系,例如我们前边经常提到的一对一,一对多,多对多关系,在数据库中我们通过外键,第三张表等来实现这些关系。而Hibernate时间实体类和数据库中的表进行的映射,这些关系如何映射呢?这里简单总结一下:

  一,一对多,多对一关系映射,这里拿学生和班级进行简单演示:

  1,学生的类和对应的映射文件的编写:

private int sid ;  private String sname ;    private Classes classes ; //,引入班级对象,多对一

  2,班级的实体类和对应的映射文件:

private int cid ;  private String cname ;    private Set
studentSet = new HashSet
(); //引入学生类的集合,一对多

 
  二,自关联:就是在自己的类进行关联自己,例如父菜单与子菜单的关系
,
对应的实体类,和映射文件

 

private int mid ;           private String name ;            private Set
menuSet = new HashSet
(); //父菜单与子菜单的关系为:一对多 private Menu pmenu ; //子菜单和父菜单的关系为:多对一

  三,一对一关系映射:

  1,假如是主键一对一用来映射:也就是说被动方的主键是来自于主动方的主键,也可以将之称之为外键:

    类之间相互添加彼此的应用。

    映射文件中主动方,增加一对一标签:

被动方,主键又是外键,也添加一对一的映射标签:
user
  2
,使用外键约束,其实是多对一的特殊情况,例如学生对班级,

    类添加彼此的应用。

    映射文件中学生端主动端,添加外键进行约束,添加多对一标签,

班级端的映射文件:添加一对一的标签:

   四,多对多的关系,例如学生对课程的对应,在数据库中会生成第三张表进行维护:

     在各自的类中引入对方的set集合,表示多对多。   

           学生端:

;/set>

         课程端:

;/set>

   五,联合主键的映射,这种情况很少见,看一下如何吧,

    出现了这种联合键时,需要我们为其定义一个联合主键的类(实现Serializable接口),类中声明多个字段的属性,表示联合主键字段。

    在配置映射文件时,主键的配置利用联合主键的标签即可:

  
  

        综上,为
Hibernate中对数据库进行关联设置映射时的几个简单例子,主要是我们根据实际情况,掌握几个对应标签的使用,还有就是里边的属性的使用。像lazy,cascade,fetch等等。注意观察其中的不同。这样进行了关联设置我们就可以很好的,根据类生成数据库,对数据库中的数据进行关联操作,更加合理化!

转载于:https://my.oschina.net/huangcongcong/blog/528720

你可能感兴趣的文章
webpack之loader
查看>>
网站速度优化-网络篇
查看>>
Codeforces Round #282 (Div. 2) a
查看>>
Jenkins 技巧及常用插件
查看>>
Android Layer-List实现自定义Shape阴影
查看>>
堆排序
查看>>
Python2操作中文名
查看>>
【工具使用系列】关于 MATLAB 句柄图形对象,你需要知道的事
查看>>
vue获取dom元素
查看>>
测试本机JVM支持的内存大小
查看>>
dubbo+zookeeper集群
查看>>
Linux的原子操作与同步机制
查看>>
存储过程
查看>>
dajngo 权限机制
查看>>
Android.mk文件语法规范及使用
查看>>
Android操作HTTP实现与服务器通信
查看>>
有关于提高C/C++运行效率以及避免出现Bug的几种常见的实用方法
查看>>
mysql主从同步 binlog-do-db replicate-do-db
查看>>
如何查询centos查看系统内核版本,系统版本,32位还是64位
查看>>
最快渲染方案
查看>>