3.一对一关联映射WFiresun

现实世界中事物内部以及事物之间的联系在信息世界中反映为实体内部的联系和实体之间的联系。实体间联系可分为:一对一联系(1:1);一对多联系(1:n);多对多联系(m:n)。

一对一联系(1:1)定义:如果对于实体集A中的每一个实体,实体集B中至多有一个(也可以没有)实体与之联系,反之亦然,则称实体集A与实体集B具有一对一联系,记为1:1。实例:一个班级只有一个正班长。一个正班长只在一个班中任职。

实体一对一关联:

假如数据库中已经存在USER、PERSON表,并且User、Person已经设计成实体类,则User类与Person类可以映射成为一对一关联关系。

Hibernate一对一关联关系映射:

Hibernate提供两种映射一对一关联关系的方式:

主键关联映射;唯一外键关联映射(外键必须设定unique约束)。

主键关联映射–主键表(USER)。通过元素配置。cascade属性(级联属性)为all。User.hbm.xml

主键关联映射–外键表(PERSON)通过元素配置。constrained属性为true,表明PERSON表ID为外键,参照主表(USER)。外键表实体类配置文件中OID使用foreign生成策略。Person.hbm.xmluser唯一外键关联:

唯一外键关联映射-外键表(USER)。通过元素配置。column属性指明外键列;unique属性设置为true,表明唯一约束;cascade属性设置为all,表明删除USER时同时删除PERSON。

唯一外键关联映射-主键表(PERSON)。通过元素配置。property-ref属性,表明建立了从User到Person的一对一关联关系。使用注解映射主键关联的一对一

在User一端的person属性上配置。@OneToOne(cascade=CascadeType.ALL):指定一对一关联关系,并设置级联属性。@PrimaryKeyJoinColumn(name="ID"):指定PERSON表主键列名。在Person一端的id属性上配置主键生成策略为foreign。@GeneratedValue(generator="foreign")@GenericGenerator(name="foreign",strategy="foreign",parameters={@Parameter(name="property",value="user")})在Person一端的user属性上配置一对一关联关系。@OneToOne(mappedBy="person")使用注解映射唯一外键关联的一对一:

在User一端的person属性上配置。@OneToOne(cascade=CascadeType.ALL)@JoinColumn(name="PERSONID"):指明USER表中的外键列名。在Person一端的user属性上配置。@OneToOne(mappedBy="person")2.组合关系映射

publicclassContact{privateintid;privateStringphoneNum;privateStringemail;privateAddresshomeAddress;privateAddressworkAddress;……}publicclassAddress{privateStringprovince;//省privateStringcity;//市privateStringdistrict;//区privateStringdetail;//详细地址……}数据库设计的重要原则:在不导致数据冗余的情况下,要尽量减少数据库表的数目以及库表之间的外键参照关系。

使用注解映射组合关系:

在部分类(Address)端配置。@Embeddable:指明为嵌入式类,不需要单独进行映射。@EmbeddablepublicclassAddress{......}在整体类(Contact)端的homeAddress配置。@Embedded@AttributeOverrides(value={@AttributeOverride(name="province",column=@Column(name="WORKPROVINCE")),@AttributeOverride(name="city",column=@Column(name="WORKCITY")),......})

THE END
1.数据库一对一,一对多,多对多关系多对多关系举例一对一关系实例:每一个中国本土的居民与居民唯一的身份证编号。一个本土居民只有一个身份证编号。‘唯一性’ 一对多关系实例:1.一个母亲可以有很多孩子,一个孩子只有一位亲生母亲。 ? 2.一个员工有一个部门,1个员工关联一个部门,一个部门可以拥有多个员工,但一个员工只能关联一个部门。 https://blog.csdn.net/weixin_57727027/article/details/124460426
2.举例说明一对一,一对多多对多的联系大学数据库应用的作业答案解析 查看更多优质解析 解答一 举报 一对一:一个人只有一张身份证一对多:一个教室可以有多张椅子,一张椅子只属于一个教室多对多:一本书可以有多个作者、一个作者可以有很多本书 解析看不懂?免费查看同类题视频解析查看解答 相似问题 请问数据库在创建表的时候如何设计表关系,一对一,一对多,多对多 请高手https://qb.zuoyebang.com/xfe-question/question/989c6780134cda981f76846216d6c5d0.html
3.mysqler图多个联系数据库er图实例一对一(3)联系用菱形表示,框内写明联系名,并在无向边标明类型(1,N,M) 2.实体之间的联系 (1)两个实体型之间的联系 I.一对一联系(1:1)例如:一个班级只有一个班主任,一个班主任管理一个班级 图1(1:1) II.一对多联系(1:n) 例如:一个班级有很多学生,每个学生都属于这个班级 https://blog.51cto.com/u_16099211/8792186
4.实体之间的联系有哪几种?分别举例都说明答案解析 查看更多优质解析 解答一 举报 一对一联系:指实体集E1中的一个实体最多只与实体集E2中的一个实体相联系. 例如:电影院的座位和观众实体之间的联系一对多联系:表示实体集E1中的一个实体可与实体集E2中的多个实体相联系. 例 解析看不懂?免费查看同类题视频解析查看解答 https://www.zybang.com/question/0faf46e18c1611dd1769d60716c70c35.html