一,概述

1)一个类中包含另一个类(车与轮子),这两个类就是组合关系.

2)类组合关系的映射,也称为组件映射.

3)组件类和被包含的组件类,共同映射到同一张表.

4)需求:车与轮子.

二,JavaBean设计

1)Car.java

package com.bighuan.d_component;public class Car {private int id;private String name;// 车轮private Wheel wheel;public Car(){}public int getId() {return id;}public void setId(int id) {this.id = id;}public String getName() {return name;}public void setName(String name) {this.name = name;}public Wheel getWheel() {return wheel;}public void setWheel(Wheel wheel) {this.wheel = wheel;}}

2)Wheel.java

package com.bighuan.d_component;
// 轮子
public class Wheel {private int count;private int size;public Wheel(){}public int getCount() {return count;}public void setCount(int count) {this.count = count;}public int getSize() {return size;}public void setSize(int size) {this.size = size;}}

三,映射文件

1)Car.hbm.xml

<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN""http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd"><!-- 组件映射-->
<hibernate-mapping package="com.bighuan.d_component"><class name="Car" table="t_car"><id name="id"><generator class="native"></generator></id>   <property name="name" length="20"></property><!-- 组件映射 --><component name="wheel"><property name="size"></property><property name="count"></property></component></class></hibernate-mapping>

2)测试

package com.bighuan.d_component;import org.hibernate.Hibernate;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.Configuration;
import org.hibernate.classic.Session;
import org.junit.Test;public class App {private static SessionFactory sf;static {sf = new Configuration().configure().addClass(Car.class)   .buildSessionFactory();}@Testpublic void testSave() {Session session = sf.openSession();session.beginTransaction();// 轮子Wheel wheel = new Wheel();wheel.setSize(38);wheel.setCount(4);// 车Car car = new Car();car.setName("BMW");car.setWheel(wheel);// 保存session.save(car);session.getTransaction().commit();session.close();}}

执行测试方法,数据库多了一张t_car表:id,name,size,coun,成功将数据插入了数据库.

Hibernate之组件映射相关推荐

  1. hibernate组件映射

    类组合关系的映射,也叫做组件映射! 注意:组件类和被包含的组件类,共同映射到一张表! 需求: 汽车与车轮 <?xml version="1.0"?> <!DOCT ...

  2. Hibernate第九篇【组件映射、继承映射】

    前言 到目前位置,我们已经学习了一对一.一对多.多对一.多对多映射了-既然Hibernate是ORM实现的框架,它还提供了组件映射和继承映射..本博文主要讲解组件映射和继承映射 Java主要的类主要有 ...

  3. 初识Hibernate之关联映射(一)

    上篇文章我们对持久化对象进行的学习,了解了它的三种不同的状态并通过它完成对数据库的映射操作.但这都是基于单张表的操作,如果两张或者两张以上的表之间存在某种关联,我们又该如何利用持久化对象进行操作呢?本 ...

  4. 4.Hibernate O/R 映射

    O/R 映射 目前为止我们已经通过应用 Hibernate 见识过十分基础的 O/R 映射了,但是还有三个更加重要的有关映射的话题需要我们更详细的探讨.这三个话题是集合的映射,实体类之间的关联映射以及 ...

  5. hibernate中的映射文件xxx.hbm.xml详解总结

    一.Hibernate映射文件的作用: Hibernate映射文件是Hibernate与数据库进行持久化的桥梁 二,Hibernate映射文件主要内容:     (1).映射内容的定义: Hibern ...

  6. Hibernate多对多映射 - 连接表

    Hibernate多对多映射 - 连接表 今天我们将使用XML和注释配置来研究Hibernate多对多映射.之前我们看过如何在Hibernate中实现One To One和One To Many映射. ...

  7. Hibernate配置文件与映射文件详解

    Hibernate是一个彻底的ORM(Object Relational Mapping,对象关系映射)开源框架. 我们先看一下官方文档所给出的,Hibernate 体系结构的高层视图: 其中PO=P ...

  8. Hibernate之继承映射

    Hibernate的继承映射可以理解为两个持久化类之间的继承关系    例如老师和人之间的关系 持久化类  Person类 public  class  Person { private   Inte ...

  9. Hibernate 主键维护策略和hibernate 常见的映射类型

    先配置Product.hbm.xml,最重要是在这个文件中 <?xml version="1.0" encoding="UTF-8"?> <! ...

  10. Hibernate 实体关联关系映射----总结

    http://lavasoft.blog.51cto.com/62575/39398 Hibernate 实体关联关系映射----总结 花了三天的业余时间,终于写完了Hibernate关联关系映射的所 ...

最新文章

  1. Android虚拟键盘遮挡EditText的解决方案
  2. listview改变选中行字体颜色
  3. maven添加oracle jdbc依赖
  4. Jquery-core.holdReady()
  5. 部署kafka kafka的service容器和zookeeper kafka客户端 Elasticsearch的客户端
  6. 鸡蛋的硬度(信息学奥赛一本通-T1300)
  7. selenium+webDriver环境搭建和学习基础(java环境)
  8. 谷粒学院(一)项目介绍
  9. 码农小汪之理解Java注解。
  10. 再见了 VMware,一款更轻量级的虚拟机!
  11. win10系统怎么连接蓝牙耳机 旧时光 oldtimeblog
  12. WIFI模块RTL8723BU驱动移植
  13. PLSQL中Oracle设置主键自增
  14. 留学Essay写作方法从哪里学习?
  15. PHP输出一段励志的话,100句关于励志的话,青春励志的话,写得好的励志句子
  16. JavaScript:利用JavaScript实现的功能、算法和奇淫技巧(持续更新)
  17. eaxsinbx_用“三行列表法”计算两次分部积分题
  18. leetcod--Missing Number
  19. Office2016免费下载:Office 2016 Pro Plus 64位 (迅雷复制链接就能下)
  20. VoLTE KPI指标分类和定义

热门文章

  1. 深入Webpack-编写Loader
  2. mysql如何给一个数据库所有表都增加一个字段?
  3. rabbitmq系列(一)-基本概念理解
  4. 为storyBoard面板中添加圆角属性(添加自定义的属性)
  5. linux AWK中正则表达式
  6. javascript 自建立对象
  7. 12. 开发工具(make,makefile)
  8. 28.程序管理(ps,top)
  9. 1. Symfony 2 --- 简介
  10. 70. 命名空间 与 自动加载