1.一对多的映射关系的建立
很多时候。我们在对数据库进行更改的时候,除了会操作单独的一个表,跟多的是会操作多个表,并且表与表之间也会通过外键进行关联,而Hibernate同样可以帮助建立这样的多表关系并对数据库进行级联操作。首先来讲,表与表之间可以存在一对一,一对多,多对多的关系,其中1~N, M~N关系的举例说明可以用如下的图进行表示:
图示的这两种关系并不难理解,而如何在Hibernate里面建立这一对多的关系呢?
如之前所讲的一样,想要建立一对多的关系,首先就是要先创建所需要的实体类,在这里就延伸图示的例子。建立表示消费者的Customer实体以及表示收获地址的Address实体。接下来将为这两个实体建立一对多的关系,其中消费者Customer是1端,地址是N端。
1.建立所需要的实体,并设置属性以及get/set方法
- 首先按照实体类的相关约定建立就可以了。需要注意的是,每个实体类都必须存在一个与所映射表的主键相对应的“特殊”属性。这一步与之前采用一对一关系所使用的步骤相同。
为了建立一对多的关系,需要在各个实体类里面添加他们所对应的实体作为他们的一个属性。 结合本例:
一个消费者可以存在多个收货地址,但是具体的一个收货地址只能为一个消费者所有。所以需要在消费者里面设置表示地址的实体作为它的一个属性,又因为消费者会对应多个地址,所以这个实体需要设置为Set集合(无序,可重复性的)的形式。同样的,表示地址的实体需要对应唯一的一个用户,所以需要在地址实体里面添加消费者实体作为它的一个属性,表示这个地址实体所对应的消费者
最终实体的建立结果如下,为减少篇幅,省略了get/set方法:
表示消费者的实体:
private int id;
private String name;
private Set<Address> addressSet = new HashSet<Address>();//表示该消费者所对应的所有地址