`
libg
  • 浏览: 58474 次
  • 性别: Icon_minigender_1
  • 来自: 河北邯郸
社区版块
存档分类
最新评论

使用连接表的单向关联(Unidirectional associations with join tables)

阅读更多

在学习中的笔记

7.3 使用连接表的单向关联(Unidirectional associations with join tables)
7.3.1 一对多 (one to many)
基于连接表的单向一对多关联应该优先被采用。请注意,通过指定unique="true",我们可以把多样性从多对多改变为一对多。
有三张表:
create table Person ( personId bigint not null primary key )
create table PersonAddress ( personId not null, addressId bigint not null primary key )
create table Address ( addressId bigint not null primary key )
hibernate的映射为:
<class name = "Person">
 <id name = "id" column"personId">
  <generator class = "native"/>
 </id>
 <set name = "addresses" table = "PersonAddress">
  <key column = "personId"/>
  <many-to-many column = "addressId" unique = "true" class = "Address"/>
 </set>
</class>
<class name = "Address">
 <id name = "id" column = "addressId">
  <generator class = "native"/>
 </id>
</class>
/**************************************************************************************/
7.3.2 多对一 (many to one)
基于连接表的单向多对一关联在关联关系可选的情况下应用也很普通。
关联表为:
create table Person ( personId bigint not null primary key )
create table PersonAddress ( personId bigint not null primary key, addressId bigint not null )
create table Address ( addressId bigint not null primary key )
hibernate的映射为:
<class name = "Person">
 <id name = "id" column = "personId">
  <generator class = "native"/>
 </id>
 <join table = "PersonAddress" optional = "true">
  <key column = "personId" unique = "true"/>
  <many-to-one name = "address" column = "addressId" not-null = "true"/>
 </join>
</class>
<class name = "Address">
 <id name = "id" column = "addressId">
  <generator class = "native"/>
 </id>
</class>
/**************************************************************************************/
7.3.3 一对一 (one to one)
基于连接表的单向一对一关联非常少见,但也是可行的。
表为:
create table Person ( personId bigint not null primary key )
create table PersonAddress ( personId bigint not null primary key, addressId bigint not null unique )
create table Address ( addressId bigint not null primary key )
hibernate的映射为:
<class name = "Person">
 <id name = "id" column = "personId">
  <generator class = "native"/>
 </id>
 <join table = "PersonAddress" optional = "true">
  <key column = "personId" unique = "true"/>
  <many-to-one name = "address" column = "addressId" not-null = "true" unique = "true"/>
</class>
<class name = "Address">
 <id name = "id" column = "addressId">
  <generator class = "native"/>
 </id>
</class>
/**************************************************************************************/
7.3.4 多对多(many to many)
表位:
create table Person ( personId bigint not null primary key )
create table PersonAddress ( personId bigint not null, addressId bigint not null, primary key (personId, addressId) )
create table Address ( addressId bigint not null primary key )

最后,还有 单向多对多关联。
<class name = "Person">
 <id name = "id" column = "personId">
  <generator class = "native"/>
 </id>
 <set name = "addresses" table PersonAddress>
  <key column = "personId"/>
  <many-to-many column = "addressId" class = "Address"/>
 </set>
</class>
<class>
 <id name = "id" column = "addressId">
  <generator class = "native"/>
 </id>
</class>

 

 

 

分享到:
评论

相关推荐

    Hibernate3的帮助文档

    8.3. 使用连接表的单向关联(Unidirectional associations with join tables) 8.3.1. 一对多(one to many) 8.3.2. 多对一(many to one) 8.3.3. 一对一(one to one) 8.3.4. 多对多(many to many) 8.4. ...

    hibernate_reference中文文档.pdf

    - **7.3 使用连接表的单向关联 (Unidirectional associations with join tables)** - **7.3.1 一对多 (one-to-many)**:讨论使用连接表的一对多关联映射。 - **7.3.2 多对一 (many-to-one)**:介绍使用连接表的多...

    hibernate 框架详解

    使用连接表的单向关联(Unidirectional associations with join tables) 8.3.1. 一对多(one to many) 8.3.2. 多对一(many to one) 8.3.3. 一对一(one to one) 8.3.4. 多对多(many to many) 8.4. 双向...

    Hibernate中文详细学习文档

    7.3. 使用连接表的单向关联(Unidirectional associations with join tables) 7.3.1. 一对多(one to many) 7.3.2. 多对一(many to one) 7.3.3. 一对一(one to one) 7.3.4. 多对多(many to many) 7.4. ...

    最全Hibernate 参考文档

    7.3. 使用连接表的单向关联(Unidirectional associations with join tables) 7.3.1. 一对多(one to many) 7.3.2. 多对一(many to one) 7.3.3. 一对一(one to one) 7.3.4. 多对多(many to many) 7.4. 双向...

    Hibernate+中文文档

    7.3. 使用连接表的单向关联(Unidirectional associations with join tables) 7.3.1. 一对多(one to many) 7.3.2. 多对一(many to one) 7.3.3. 一对一(one to one) 7.3.4. 多对多(many to many) 7.4. ...

    Hibernate_3.2.0_符合Java习惯的关系数据库持久化

    7.3. 使用连接表的单向关联(Unidirectional associations with join tables) 7.3.1. 一对多(one to many) 7.3.2. 多对一(many to one) 7.3.3. 一对一(one to one) 7.3.4. 多对多(many to many) 7.4. ...

    hibernate 体系结构与配置 参考文档(html)

    使用连接表的单向关联(Unidirectional associations with join tables) 7.3.1. 一对多(one to many) 7.3.2. 多对一(many to one) 7.3.3. 一对一(one to one) 7.3.4. 多对多(many to many) 7.4. 双向...

    hibernate3.04中文文档.chm

    8.3. 使用连接表的单向关联(Unidirectional associations with join tables) 8.3.1. 一对多(one to many) 8.3.2. 多对一(many to one) 8.3.3. 一对一(one to one) 8.3.4. 多对多(many to many) 8.4. ...

    Hibernate 中文 html 帮助文档

    7.3. 使用连接表的单向关联(Unidirectional associations with join tables) 7.3.1. 一对多(one to many) 7.3.2. 多对一(many to one) 7.3.3. 一对一(one to one) 7.3.4. 多对多(many to many) 7.4. 双向...

    Hibernate教程

    8.3. 使用连接表的单向关联(Unidirectional associations with join tables) 8.3.1. 一对多(one to many) 8.3.2. 多对一(many to one) 8.3.3. 一对一(one to one) 8.3.4. 多对多(many to many) 8.4. ...

    Hibernate3+中文参考文档

    7.3. 使用连接表的单向关联(Unidirectional associations with join tables) 7.3.1. 一对多(one to many) 7.3.2. 多对一(many to one) 7.3.3. 一对一(one to one) 7.3.4. 多对多(many to many) 7.4. 双向...

    HibernateAPI中文版.chm

    7.3. 使用连接表的单向关联(Unidirectional associations with join tables) 7.3.1. 一对多(one to many) 7.3.2. 多对一(many to one) 7.3.3. 一对一(one to one) 7.3.4. 多对多(many to many) 7.4. ...

    hibernate3.2中文文档(chm格式)

    7.3. 使用连接表的单向关联(Unidirectional associations with join tables) 7.3.1. 一对多(one to many) 7.3.2. 多对一(many to one) 7.3.3. 一对一(one to one) 7.3.4. 多对多(many to many) 7.4. ...

    Hibernate参考文档

    7.3. 使用连接表的单向关联(Unidirectional associations with join tables) 7.3.1. 一对多(one to many) 7.3.2. 多对一(many to one) 7.3.3. 一对一(one to one) 7.3.4. 多对多(many to many) 7.4. 双向...

Global site tag (gtag.js) - Google Analytics