Hibernate(6) 一对多映射关系的建立

本文详细介绍了在Hibernate中如何建立一对多的映射关系。通过创建Customer和Address实体,设置属性及get/set方法,然后在映射文件中配置实体间的关联,包括在1端的Customer实体中使用set标签,以及在N端的Address实体中配置对应关系。最后通过单元测试和SQLYog验证映射关系的成功建立。
摘要由CSDN通过智能技术生成

1.一对多的映射关系的建立

很多时候。我们在对数据库进行更改的时候,除了会操作单独的一个表,跟多的是会操作多个表,并且表与表之间也会通过外键进行关联,而Hibernate同样可以帮助建立这样的多表关系并对数据库进行级联操作。首先来讲,表与表之间可以存在一对一,一对多,多对多的关系,其中1~N, M~N关系的举例说明可以用如下的图进行表示:
这里写图片描述
图示的这两种关系并不难理解,而如何在Hibernate里面建立这一对多的关系呢?


如之前所讲的一样,想要建立一对多的关系,首先就是要先创建所需要的实体类,在这里就延伸图示的例子。建立表示消费者的Customer实体以及表示收获地址的Address实体。接下来将为这两个实体建立一对多的关系,其中消费者Customer是1端,地址是N端。

1.建立所需要的实体,并设置属性以及get/set方法
  1. 首先按照实体类的相关约定建立就可以了。需要注意的是,每个实体类都必须存在一个与所映射表的主键相对应的“特殊”属性。这一步与之前采用一对一关系所使用的步骤相同。
  2. 为了建立一对多的关系,需要在各个实体类里面添加他们所对应的实体作为他们的一个属性。 结合本例:
    个消费者可以存在多个收货地址,但是具体的一个收货地址只能为一个消费者所有。所以需要在消费者里面设置表示地址的实体作为它的一个属性,又因为消费者会对应多个地址,所以这个实体需要设置为Set集合(无序,可重复性的)的形式。

    样的,表示地址的实体需要对应唯一的一个用户,所以需要在地址实体里面添加消费者实体作为它的一个属性,表示这个地址实体所对应的消费者
    最终实体的建立结果如下,为减少篇幅,省略了get/set方法:

表示消费者的实体:
    private int id;
    private String name;
    private Set<Address> addressSet = new HashSet<Address>();//表示该消费者所对应的所有地址

                
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值