一对一关系映射
一.引例
- 某网贷系统的需求中,要求每个账号都进行实名认证,也就是说一个账号只能跟一个人绑定,一个人也只能注册一个账号。
- 域模型
- 实体类
二.Hibernate一对一关联关系映射
- Hibernate提供两种映射一对一关联关系的方式:
– 主键关联映射;
– 唯一外键关联映射。
– 外键必须设定 unique 约束。
(1)主键关联
(2)主键关联映射
- 主键关联映射 – 主键表(USER)。
– 通过< one-to-one > 元素配置。
– cascade属性(级联属性)为 all。
– User.hbm.xml
(3)主键关联映射 – 外键表(PERSON )
- 通过 < one-to-one > 元素配置。
- constrained 属性为 true,表明 PERSON 表 ID 为外键,参照主表(USER)。
- 外键表实体类配置文件中 OID 使用 foreign 生成策略。
三.唯一外键关联
- 唯一外键关联 - 关系数据模型。
(1)唯一外键关联映射
- 唯一外键关联映射 - 外键表(USER)。
– 通过 < many-to-one > 元素配置。
– column 属性指明外键列;
– unique 属性设置为 true,表明唯一约束;
– cascade 属性设置为 all,表明删除 USER 时同时删除 PERSON。 - 唯一外键关联映射 - 主键表(PERSON)。
– 通过< one-to-one > 元素配置。
– property-ref 属性,表明建立了从User到Person的一对一关联关系。