首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件架构设计 >

hibernate关系投射(1-1)

2012-08-21 
hibernate关系映射(1--1)?? Hibernate将表之间的关系映射成对象之间的关系单向关系1,1--1? (外键一对一,主

hibernate关系映射(1--1)

?? Hibernate将表之间的关系映射成对象之间的关系

单向关系

1,1--1? (外键一对一,主键一对一)

2,1--N

3,N--1

4,N--N

双向关系

1,1--1

2,1--N(N--1)

3,N--N

?

?

(1) 1--1(单向外键一对一)

??????? <generator --可以对对方的引用进行唯一性约束(一对一的关系),也可以不进行唯一性约束(对象之间多对一的关系)

??????? cascade = "all" -- 表明操作是否从父对象级联到被操作的对象
??????? not-null="true"/> -- 必须加上, 保证两个表的关系
</class>

<class name="Address">
??? <id name="id" column="addressId">
??????? <generator column="personId">
??????? <generator --可以对对方的引用进行唯一性约束(一对一的关系),也可以不进行唯一性约束(对象之间多对一的关系)

??????? cascade = "all" -- 表明操作是否从父对象级联到被操作的对象
??????? not-null="true"/> -- 必须加上, 保证两个表的关系
</class>

<class name="Address">
??? <id name="id" column="addressId">
??????? <generator column="personId">
??????? <generator column="addressId ">
??????? <generator column="personId">
??????? <generator cascade="true"/> //增加了one-to-one的配置
</class>

<class name="Address">
??? <id name="id" column="addressId ">
??????? <generator class="foreign">
??????????? <param name="property">person</param>
??????? </generator>
??? </id>


??? <one-to-one name="person"? ? constrained="true"? -- 取值必须从外键中取 (必须加上)

?? ? ? class="Person"? cascade="true"/>
</class>

?

第四步:创建对象保存数据库 保存对象书顺序是没有改变的 (要先保存自动生成主键的对象)

Person person = new Person();? //创建被依赖的对象

?

Address address = new Address(); // 创建依赖对象

address.setPerson(person);

?

session.save(address ); // 保存依赖对象

?

热点排行