Hibernate入门之关系篇:一对一投射
Hibernate入门之关系篇:一对一映射

囫囵吞枣的学了一些关系Hibernate的入门知识,梳理一下,觉得关系的映射在Hibernate知识体系内最为基础,也最为重要。小编写博客,作为总结。
Hibernate的关系映射细分为七类:
一对一单向关联
一对一双向关联
一对多单向关联
多对一单向关联
一对多双向关联
多对多单向关联
多对多双向关联
如果,你对面向对象很熟悉,特别是经常画UML图,这七种关系很容易掌握,主要是实现方面的问题了。本文先从最简单的入手:单向一对一关联
(1) 对象建立:(Personà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; } }
public class Person { private int id; private String name; private 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; } }
(2) 使用映射策略一:让两个实体主键一样
(3) 建立配置文件
<class name="com.zs.hibernate.IdCard" table="t_idCard"> <id name="id"> <generator class="native"/> </id> <property name="cardNo"/> </class> <class name="com.zs.hibernate.Person" table="t_person"> <id name="id"> <generator class="foreign"> <param name="property">idCard</param> </generator> </id> <property name="name"/> <one-to-one name="idCard" constrained="true"/> </class>
(4) 得到表结构:
由表结构与实体可以看出,主键关联即利用主键进行关联,关联主键的值相同,constrained="true" 决定了,关系维护的单向性
- 1楼aboy123昨天 17:38
- 你也来个系列吧