首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 其他教程 > 开源软件 >

hibernate入门3:一对多关联关系映射

2013-10-22 
hibernate入门三:一对多关联关系映射实体之间的一对多关系是很常见的一种关联关系,例如:一个人有多套房子,

hibernate入门三:一对多关联关系映射
  实体之间的一对多关系是很常见的一种关联关系,例如:一个人有多套房子,那就有多个地址,一个人在淘宝分不同时段买了多个东西,那就有多个订单;对于在数据库来说,那就是外键的约束关系,多的一方有个字段是外键,指向一的一方。在hibernate中,一对多关联关系映射分为2种,需分情况使用。一种是单向关联关系映射,一种是双向关系映射,下面以2张表说明,表中外键约束通过hibernate维护。下面是表间关系



其去掉foreign key 的SQL为:
CREATE TABLE `ADDRESS` (
  `ID` int(4) NOT NULL auto_increment,
  `CITY` varchar(40) default NULL,
  `STREET` varchar(100) default NULL,
  `PERSON_ID` int(4) NOT NULL default '0',
  PRIMARY KEY  (`ID`)

) ENGINE=MyISAM DEFAULT CHARSET=gb2312;
CREATE TABLE `PERSON` (
  `ID` int(4) NOT NULL auto_increment,
  `NAME` char(20) default NULL,
  `PHONE` char(20) default NULL,
  PRIMARY KEY  (`ID`)
) ENGINE=MyISAM DEFAULT CHARSET=gb2312;

一对多单向关联关系和一对多双向关联关系数据库表相同,不同的只是映射的JAVA类及映射文件的配置。DAO代码和测试代码省略。
一对多单向关联关系:
实体类:


一对多单向关联关系,可以从多的一方查询到一的一方,但从一的一方查询不到多的一方。

一对多双向关联关系映射:
实体类:

一对多双向关联关系,双方均可查询到对方。

从上面可以看出,一对多的单向和双向,只不过是在类中是否有对方作为属性,一的一方有个多的一方的set集合,多的一方有个一的一方做为属性。在配置文件中,单双向多的一方的配置均相同,只有一的一方不同。

热点排行