hibernate03多表操作
2018-11-05阅读 3965

一、表与表之间的关系

一对多

古代夫妻之间的关系,一个丈夫对应多个妻子

一对多建表:通过外键来建立关系

多对多

订单和商品是多对多的关系,一个订单中可以有多个商品,一个商品可以出现在多个订单中

人物和角色的关系

一对一

键值对

二、一对多的操作

2.1一对多的映射配置

2.2创建两个实体类[丈夫(一) 妻子(多)]

让两个实体类之间产生关联

在丈夫类里面表示多个妻子

一个丈夫里面有多个妻子(创建妻子set


在妻子实体类中表示所属丈夫

一个妻子只能属于一个丈夫(创建丈夫对象)


2.3配置映射文件

一个实体类对应一个映射文件

配置最基础配置

在映射文件中,配置一对多关系

在丈夫映射文件中,表示所有妻子


在妻子映射文件中,表示丈夫


创建核心配置文件

测试

2.4一对多的级联操作

级联保存

创建丈夫和妻子对象       

在丈夫表示妻子,在妻子中表现丈夫

把丈夫对象放到妻子对象中

把妻子对象放到丈夫中

保存到数据库

简化方式

在丈夫表中做配置

set中加cascadesave-update


创建丈夫和妻子对象,只需要将妻子放到丈夫里面就可以了,只需要保存丈夫即可


级联删除

cascade中添加delete

根据id查询丈夫对象

调用方法删除


级联修改

根据id查询丈夫,根据id查询妻子

设置持久态的值


设置inverse属性


因为hibernate双向维护外键,在客户和联系人里面都需要维护外键,修改客户时候修改一次外键,修改联系人时候也修改一次外键,造成效率问题

三、多对多操作

3.1多对多映射配置

创建实体类、人,爱好

两个实体类互相表示

一个人有很多爱好

一个爱好可以很多人共有

配置映射关系

基本配置(除基本属性外,添加set集合)



配置关系

在核心配置文件中引入映射文件



级联保存


级联删除

设置配置文件


书写代码删除


维护第三张表

只需要将set中数据修改即可