通常在数据库或者现实的实体关系中存在3种现象: 1-1 ,1-N , N-N 其中1对1的关系 好比一个丈夫 只有一个 妻子
,一个妻子也只有一个老婆,一对多的关系 就像 1个人能有多个 房子,而一个房子只能有一个房主, 多对多
好比一个班有多个老师来教,而一个老师能教多个班。
在实体设计中 也存在这样映射关系,一对一 用的比较少,一对多或者 多对多 用的比较常见。
先来介绍下一对一 ;
每种映射关系都存在 有连接表和无连接表 两种情况,下面我都讲解 无连接表的情况。
第一种情况; 基于外键的双向 关联
什么意思呢; 基于外键的关联好比 一个表的外键是另一个表的主键,学过数据库的朋友应该都知道这种主从表关系(父子表关系)。
数据的表设计就不多做解释了,下面着重讲解 映射文件的写法;
在hibernate框架中的我们都知道 一个表应该对应一个实体 即模型(bean) 所有主从表的话基本要设计两个bean对象,那么每个bean对象就必须写上一个xml问价作为hibernate框架 控制的桥梁。
在主表对应的bean对象的 xml文件的写法如下;
........
主bean 类的写法加上一个属性 表示 另一个 bean的 变量,在子bean中同样如此
" class="另一个bean对象的全路径" cascade="all" property-ref="在另一个bean中代表本类的变量名">
cascade="all"表示 同步两个表hibernate-mapping>
另一个bean ,即子表bean的xml文件的写法
主键生成策略:foreign
column=“外键名”
class="主bean的全路径">
2:基于主键的双向 1-1关联
什么是基于主键 ; 即一个表的主键是另一个的主键,一个的主键变化 另一个表也同时变化
xml写法