Hibernate一对一 主键关联映射(one-to-one)
来源:互联网 发布:苹果电脑安装办公软件 编辑:程序博客网 时间:2024/04/29 05:13
*两个对象之间是一对一的关系,如Person-IdCard(人-身份证号)
*有两种策略可以实现一对一的关联映射
》主键关联:即让两个对象具有相同的主键值,以表明它们之间的一一对应关系;数据库不会有额外的字段来维护它们之间的关系,仅通过表的主键来关联
Person实体映射文件:
*有两种策略可以实现一对一的关联映射
》主键关联:即让两个对象具有相同的主键值,以表明它们之间的一一对应关系;数据库不会有额外的字段来维护它们之间的关系,仅通过表的主键来关联
》唯一外键关联:外键关联本来是用于多对一的配置,但是如果加上唯一的限制之后,也可以用来表示一对一关联映射
1.主键关联映射(单向)
实例场景:人-->身份证号(Person-->IdCard),从IdCard看不到Person对象
对象模型:
IdCard实体类:
public class IdCard {private int id;private String cardNo;public int getId() {return id;}public void setId(int id) {this.id = id;}public String getCardNo() {return cardNo;}public void setCardNo(String cardNo) {this.cardNo = cardNo;}}Person实体类:
public class Person {private int id;private String name;private IdCard idCard;//持有IdCard对象的引用public int getId() {return id;}public void setId(int id) {this.id = id;}public String getName() {return name;}public void setName(String name) {this.name = name;}public IdCard getIdCard() {return idCard;}public void setIdCard(IdCard idCard) {this.idCard = idCard;}}IdCard实体映射文件:
<hibernate-mapping><class name="com.cn.hibernate.IdCard" table="t_idcard"><id name="id" column="id"><generator class="native"/></id><property name="cardNo"/></class></hibernate-mapping>
Person实体映射文件:
<hibernate-mapping><class name="com.cn.hibernate.Person" table="t_person"><id name="id" column="id"><!--因为主键不是自己生成的,而是作为一个外键(来源于其它值),所以使用foreign生成策略foreign:使用另外一个相关联的对象的标识符,通常和<one-to-one>联合起来使用。再使用元素<param>的属性值指定相关联对象(这里Person相关联的对象为idCard,则标识符为idCard的id)为了能够在加载person数据同时加载IdCard数据,所以需要使用一个标签<one-to-one>来设置这个功能。 --><generator class="foreign"><!-- 元素<param>属性name的值是固定为property --><param name="property">idCard</param></generator></id><property name="name"/><!-- <one-to-one>标签表示如何加载它的引用对象(这里引用对象就指idCard这里的name值是idCard),同时也说是一对一的关系。默认方式是根据主键加载(把person中的主键取出再到IdCard中来取相关IdCard数据。) 我们也说过此主键也作为一个外键引用 了IdCard,所以需要加一个数据库限制(外键约束)constrained="true" --><one-to-one name="idCard" constrained="true"/></class></hibernate-mapping>
- Hibernate一对一 主键关联映射(one-to-one)
- Hibernate一对一 主键关联映射(one-to-one)
- Hibernate一对一 主键关联映射(one-to-one)
- hibernate---->一对一关联映射 (one-to-one)
- 【SSH快速进阶】——Hibernate一对一映射(one-to-one)——主键关联映射
- Hibernate一对一 外键关联映射(one-to-one)
- Hibernate 、多表关联映射 - 一对一关系映射(one- to-one)
- Hibernate之one-to-one主键关联映射
- hibernate 一对一(one-to-one)映射
- Hibernate one-to-one一对一映射
- Hibernate one-to-one一对一映射
- Hibernate one-to-one一对一映射
- Hibernate one to one 关联关系映射
- Hibernate 关联映射one-to-one
- 【SSH快速进阶】——Hibernate一对一映射(one-to-one)——唯一外键关联
- hibernate one-to-one 一对一唯一外键关联映射_单向
- hibernate单向一对一关联映射(one-to-one)XML与注解版
- hibernate 一对一(One-to-One)
- soa技术,webservice,soap
- Service组件 startService() bindService()
- 小玩具——单词词频统计
- Android学习第16课—SQLite的简单使用
- Struts2简介
- Hibernate一对一 主键关联映射(one-to-one)
- difference with Macro and Template
- 既有鱼肉又有熊掌——浅尝ListOrderedMap
- rpm安装和卸载
- 动态的启动系统服务
- 搜狗2012校园招聘自测题
- 判断是否是汉字
- createElement方法在IE和Firefox下的差异
- Android与服务器端数据交互(基于SOAP协议整合android+webservice)