`
starbhhc
  • 浏览: 640013 次
  • 性别: Icon_minigender_2
  • 来自: 深圳
社区版块
存档分类
最新评论

Hibernate系列:映射一对一连接表单向关联

阅读更多
SQL:C_E_JOIN_SINGLE为中间表

create table car_join_single (      
    id number(10,0) not null,      
    name varchar2(15) not null,      
    serial varchar2(30) not null,      
    manufacturer varchar2(50) not null,      
    producedate date,      
    primary key (id)      
);       
create table c_e_join_single(      
cid number(10,0) not null,      
eid number(10,0) not null unique,      
primary key (cid)      
);       
create table engine_join_single (      
    id number(10,0) not null,      
    model varchar2(20) not null,      
    manufacturer varchar2(50) not null,      
    producedate date,      
    primary key (id)      
);       
alter table C_E_JOIN_SINGLE      
  add constraint FK_CAR_JOIN_SINGLE foreign key (CID)      
  references CAR_JOIN_SINGLE (ID);      
alter table C_E_JOIN_SINGLE      
  add constraint FK_ENGINE_JOIN_SINGLE foreign key (EID)      
  references ENGINE_JOIN_SINGLE (ID);      



POJO:Car类有Engine类的一个引用(以下为省略写法)

public class Car implements Serializable      
{      
private Engine engine;      
}       
     
public class Engine implements Serializable      
{      
//没有car属性      
}     



XML:    Car.hbm.xml     Engine.hbm.xml(以下为省略写法)

<hibernate-mapping package="com.allanlxf.hibernate.association.o2o.entity">     
  <class name="Car" table="car_join">     
    <id name="id" column="id" type="integer">     
      <generator class="native" />     
    </id>     
    <join table="c_e_join_single">       
            <key column="cid"       
                 unique="true"/>       
            <many-to-one name="engine"       
                         column="eid"       
                         not-null="true"       
                         unique="true"     
                         fetch="join" />       
    </join>       
  </class>     
</hibernate-mapping>       
     
<hibernate-mapping package="com.allanlxf.hibernate.association.o2o.entity">     
  <class name="Engine" table="engine_join_single">     
    <id name="id" column="id" type="integer">     
      <generator class="native"/>     
    </id>     
  </class>     
</hibernate-mapping>      



a)  先保存其中一方得到那一方的id,然后再set并保存另一方
    session.save(engine);
    car.setEngine(engine);
    session.save(car);

b) session.get(Car.class, id),将得到一个外连接的sql,如下:
select
        car0_.id as id0_1_,
        car0_.name as name0_1_,
        car0_.serial as serial0_1_,
        car0_.manufacturer as manufact4_0_1_,
        car0_.producedate as produced5_0_1_,
        car0_1_.eid as eid1_1_,
        engine1_.id as id2_0_,
        engine1_.model as model2_0_,
        engine1_.manufacturer as manufact3_2_0_,
        engine1_.producedate as produced4_2_0_
    from
        car_join_single car0_
    inner join
        c_e_join_single car0_1_
            on car0_.id=car0_1_.cid
    inner join
        engine_join_single engine1_
            on car0_1_.eid=engine1_.id
    where
        car0_.id=?

one-to-one连接表单向关联映射总结: 需对在主控方的XML文件中设置join元素做连接表,表现为many-to-one。查询时可以使用fetch属性来提高查询效率。

分享到:
评论

相关推荐

    Hibernate关联映射

    Hibernate 一对一连接表单向关联 Hibernate 一对多外键单向关联 Hibernate 一对多连接表单向关联 Hibernate 多对一外键单向关联 Hibernate 多对一连接表单向关联 Hibernate 多对多单向关联 Hibernate 一对一外键双向...

    Hibernate关联关系映射目录

    │ ├─ 一对一连接表单向关联 │ ├─ 一对多外键单向关联 │ ├─ 一对多连接表单向关联 │ ├─ 多对一外键单向关联 │ ├─ 多对一连接表单向关联 │ └─ 多对多单向关联 └─双向关联 ├─ 一对一外键双向关联...

    ssh(structs,spring,hibernate)框架中的上传下载

    Tfile的Hibernate映射文件Tfile.hbm.xml放在Tfile .java类文件的相同目录下:  代码 2 领域对象映射文件 1. 2. !DOCTYPE hibernate-mapping PUBLIC 3. "-//Hibernate/Hibernate Mapping DTD 3.0//EN" 4. ...

    低清版 大型门户网站是这样炼成的.pdf

    4.3.4 映射一对一关联关系 228 4.3.5 映射多对一单向关联关系 235 4.3.6 映射一对多双向关联关系 239 4.3.7 映射一对多双向自身关联关系 244 4.3.8 映射多对多单向关联关系 247 4.3.9 映射多对多双向关联关系 ...

    Spring面试题

    它支持各种关系数据库,从一对一到多对多的各种复杂关系。 2. Hibernate是如何延迟加载? 1. Hibernate2延迟加载实现:a)实体对象 b)集合(Collection) 2. Hibernate3 提供了属性的延迟加载功能 当Hibernate在...

    Grails 中文参考手册

    5.2.1.1 一对一 5.2.1.2 一对多 5.2.1.3 多对多 5.2.2 GORM的组合 5.2.3 GORM的继承 5.2.4 集合、列表和映射 5.3 持久化基础 5.3.1 保存和更新 5.3.2 删除对象 5.3.3 级联更新和删除 5.3.4 立即加载和延迟加载 5.3.4...

    Java Web程序设计教程

    9.3.1一对一关联关系的使用 196 9.3.2一对多、多对一关联关系的使用 197 9.3.3多对多关联关系的使用 199 9.4hibernate过滤 201 9.4.1session过滤 201 9.4.2filter过滤 201 9.5项目实战——客户订单管理 202 ...

    Java语言基础下载

    映射多对一多态关联 702 内容总结 705 独立实践 705 第三十六章:HQL介绍 706 学习目标 706 HQL的出现 707 进入HQL世界 707 聚合 708 分组 709 在Java中使用HQL 709 内容总结 712 独立实践 712 第三十七章 Spring...

    经典JAVA.EE企业应用实战.基于WEBLOGIC_JBOSS的JSF_EJB3_JPA整合开发.pdf

    10.5.9 对关联实体进行排序 424 10.6 继承关系映射 426 10.6.1 整个类层次对应一张表的 映射策略 427 10.6.2 连接子类的映射策略 430 10.6.3 每个具体类对应一张表的 映射策略 434 10.7 使用抽象实体和非实体父类 ...

    【计算机软件毕业设计】二手车交易平台的分析、设计与实现文献综述1.doc

    文献综述 摘 要 Web开发技术和Web开发框架整合实践研究是这个时代的一个热点,本文在参阅国内 外Web开发技术和Web开发框架及... Raible学者认为,Hibernate是一个面对Java环境的对象/关系数据库映射工具, 它对JDBC进

    Struts2 in action中文版

    第一部分 Strut 2:一个全新的框架 第1章 Struts 2:现代Web框架 2 1.1 Web应用程序:快速学习 2 1.1.1 构建Web应用程序 2 1.1.2 基础技术简介 3 1.1.3 深入研究 6 1.2 Web应用程序框架 7 1.2.1 什么是框架 7 1.2.2 ...

    JAVA项目开发全程实录(含电子书和所有源代码)

    3.11.1 建立一对一关联 141 3.11.2 建立一对多关联 142 3.12 本章总结 144 第4章 酒店管理系统(Swing+SQL Server 2005实现) 145 教学视频:2小时39分 4.1 概述 146 4.2 系统分析 146 4.3 系统设计 146 4.3.1 系统...

    Java/JavaEE 学习笔记

    第三章 关联关系映射......................185 第四章 操纵持久化对象..................190 第五章 事务控制...191 第六章 高级映射...192 第七章 高级查询...196 HTML&java; script学习笔记.......................

    J2EE学习笔记(J2ee初学者必备手册)

    第三章 关联关系映射......................185 第四章 操纵持久化对象..................190 第五章 事务控制...191 第六章 高级映射...192 第七章 高级查询...196 HTML&JavaScript学习笔记........................

    Java学习笔记-个人整理的

    {13.3}连接Oracle数据库及操作}{192}{section.13.3} {13.4}批处理模式}{195}{section.13.4} {13.5}分页查询}{196}{section.13.5} {13.5.1}MySQL}{198}{subsection.13.5.1} {13.6}连接池}{199}{section.13.6} {...

    ARCH4系统开发指南

    8.6 一个POJO对象只能映射为一条数据库记录 114 8.6.1 实体对象生命周期 115 8.6.2 实体对象的识别 115 8.7 String对象、StringBuilder对象和原始数据类型的特点 116 8.7.1 String对象的“equals()”和“==” 116 ...

Global site tag (gtag.js) - Google Analytics