一、

1.

 <?xml version="1.0"?>
<!DOCTYPE hibernate-mapping
PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping > <class name="mypack.Monkey" table="MONKEYS" >
<id name="id" type="long" column="ID">
<generator class="increment"/>
</id> <property name="name" type="string" column="NAME" /> <component name="homeAddress" class="mypack.Address">
<parent name="monkey" />
<property name="province" type="string" column="HOME_PROVINCE"/>
<property name="city" type="string" column="HOME_CITY"/>
<property name="street" type="string" column="HOME_STREET"/>
<property name="zipcode" type="string" column="HOME_ZIPCODE"/>
</component> <component name="comAddress" class="mypack.Address">
<parent name="monkey" />
<property name="province" type="string" column="COM_PROVINCE"/>
<property name="city" type="string" column="COM_CITY"/>
<property name="street" type="string" column="COM_STREET"/>
<property name="zipcode" type="string" column="COM_ZIPCODE"/>
</component>
</class> </hibernate-mapping>

2.

 package mypack;
public class Monkey { private long id;
private String name;
private Address homeAddress;
private Address comAddress; public Monkey() {
} public Monkey(String name, Address homeAddress, Address comAddress) {
this.name = name;
this.homeAddress = homeAddress;
this.comAddress = comAddress;
} public long getId() {
return this.id;
} public void setId(long id) {
this.id = id;
}
public String getName() {
return this.name;
} public void setName(String name) {
this.name = name;
}
public Address getHomeAddress() {
return this.homeAddress;
} public void setHomeAddress(Address homeAddress) {
this.homeAddress = homeAddress;
}
public Address getComAddress() {
return this.comAddress;
} public void setComAddress(Address comAddress) {
this.comAddress = comAddress;
} }

3.

 package mypack;
public class Address { private String province;
private String city;
private String street;
private String zipcode;
private Monkey monkey; public Address() {
} public Address(String province, String city, String street, String zipcode,Monkey monkey) {
this.province = province;
this.city = city;
this.street = street;
this.zipcode = zipcode;
this.monkey=monkey;
} public String getProvince() {
return this.province;
} public void setProvince(String province) {
this.province = province;
}
public String getCity() {
return this.city;
} public void setCity(String city) {
this.city = city;
}
public String getStreet() {
return this.street;
} public void setStreet(String street) {
this.street = street;
}
public String getZipcode() {
return this.zipcode;
} public void setZipcode(String zipcode) {
this.zipcode = zipcode;
} public Monkey getMonkey() {
return this.monkey;
} public void setMonkey(Monkey monkey) {
this.monkey = monkey;
} }

二、电脑例子

4.

 <?xml version="1.0"?>
<!DOCTYPE hibernate-mapping
PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping > <class name="mypack.Computer" table="COMPUTERS" >
<id name="id" type="long" column="ID">
<generator class="increment"/>
</id> <property name="type" type="string" >
<column name="COMPUTER_TYPE" />
</property> <component name="cpuBox" class="mypack.CpuBox">
<parent name="computer" /> <property name="type" type="string" >
<column name="CPUBOX_TYPE" />
</property> <component name="graphicsCard" class="mypack.GraphicsCard">
<parent name="cpuBox" /> <property name="type" type="string" >
<column name="GRAPHICSCARD_TYPE" />
</property> </component> <many-to-one
name="vendor"
column="CPUBOX_VENDOR_ID"
class="mypack.Vendor"
not-null="true"
/>
</component>
</class> </hibernate-mapping>

5.

 <?xml version="1.0"?>
<!DOCTYPE hibernate-mapping
PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping > <class name="mypack.Vendor" table="VENDORS" >
<id name="id" type="long" column="ID">
<generator class="increment"/>
</id> <property name="type" type="string" >
<column name="TYPE" length="15" />
</property> </class> </hibernate-mapping>

6.

 package mypack;
public class Computer { private long id;
private String type;
private CpuBox cpuBox; public Computer() {
} public Computer(CpuBox cpuBox) {
this.cpuBox = cpuBox;
}
public Computer(String type, CpuBox cpuBox) {
this.type = type;
this.cpuBox = cpuBox;
} public long getId() {
return this.id;
} public void setId(long id) {
this.id = id;
}
public String getType() {
return this.type;
} public void setType(String type) {
this.type = type;
}
public CpuBox getCpuBox() {
return this.cpuBox;
} public void setCpuBox(CpuBox cpuBox) {
this.cpuBox = cpuBox;
} }

7.

 package mypack;
public class CpuBox { private String type;
private GraphicsCard graphicsCard;
private Vendor vendor;
private Computer computer;
public CpuBox() {
} public CpuBox(Vendor vendor) {
this.vendor = vendor;
}
public CpuBox(String type, GraphicsCard graphicsCard, Vendor vendor,Computer computer) {
this.type = type;
this.graphicsCard = graphicsCard;
this.vendor = vendor;
this.computer=computer;
} public String getType() {
return this.type;
} public void setType(String type) {
this.type = type;
}
public GraphicsCard getGraphicsCard() {
return this.graphicsCard;
} public void setGraphicsCard(GraphicsCard graphicsCard) {
this.graphicsCard = graphicsCard;
}
public Vendor getVendor() {
return this.vendor;
} public void setVendor(Vendor vendor) {
this.vendor = vendor;
} public Computer getComputer() {
return this.computer;
} public void setComputer(Computer computer) {
this.computer=computer;
} }

8.

 package mypack;

 public class GraphicsCard  {

      private String type;
private CpuBox cpuBox; public GraphicsCard() {
} public GraphicsCard(String type,CpuBox cpuBox) {
this.type = type;
this.cpuBox=cpuBox;
} public String getType() {
return this.type;
} public void setType(String type) {
this.type = type;
} public CpuBox getCpuBox() {
return this.cpuBox;
} public void setCpuBox(CpuBox cpuBox) {
this.cpuBox = cpuBox;
} }

9.

 package mypack;
public class Vendor { private long id;
private String type; public Vendor() {
} public Vendor(String type) {
this.type = type;
} public long getId() {
return this.id;
} public void setId(long id) {
this.id = id;
}
public String getType() {
return this.type;
} public void setType(String type) {
this.type = type;
} }

10.

 use sampledb;
drop table if exists COMPUTERS;
drop table if exists MONKEYS;
drop table if exists VENDORS; create table MONKEYS (ID bigint not null, NAME varchar(15), HOME_PROVINCE varchar(255),
HOME_CITY varchar(255), HOME_STREET varchar(255), HOME_ZIPCODE varchar(255),
COM_PROVINCE varchar(255), COM_CITY varchar(255),
COM_STREET varchar(255), COM_ZIPCODE varchar(255), primary key (ID)); create table COMPUTERS (ID bigint not null, COMPUTER_TYPE varchar(15),
CPUBOX_TYPE varchar(15), GRAPHICSCARD_TYPE varchar(15),
CPUBOX_VENDOR_ID bigint not null, primary key (ID)); create table VENDORS (ID bigint not null, TYPE varchar(15), primary key (ID)); alter table COMPUTERS add index IDX_VENDOR (CPUBOX_VENDOR_ID),
add constraint FK_VENDOR foreign key (CPUBOX_VENDOR_ID)
references VENDORS (ID);

11.

 <?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE hibernate-configuration
PUBLIC "-//Hibernate/Hibernate Configuration DTD//EN"
"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd"> <hibernate-configuration>
<session-factory>
<property name="dialect">
org.hibernate.dialect.MySQLDialect
</property>
<property name="connection.driver_class">
com.mysql.jdbc.Driver
</property>
<property name="connection.url">
jdbc:mysql://localhost:3306/sampledb
</property>
<property name="connection.username">
root
</property>
<property name="connection.password">
1234
</property> <property name="show_sql">true</property> <mapping resource="mypack/Monkey.hbm.xml" />
<mapping resource="mypack/Computer.hbm.xml" />
<mapping resource="mypack/Vendor.hbm.xml" /> </session-factory>
</hibernate-configuration>

Hibernate逍遥游记-第8章 映射组成关系(<component>、<parent>)的更多相关文章

  1. Hibernate逍遥游记-第10章 映射继承关系-003继承关系树中的每个类对应一个表(joined-subclass)

    1. 2. <?xml version="1.0"?> <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate ...

  2. Hibernate逍遥游记-第10章 映射继承关系-002继承关系树中的根类对应一个表(discriminator、subclass)

    1. 2. <?xml version="1.0"?> <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate ...

  3. Hibernate逍遥游记-第10章 映射继承关系-001继承关系树中的每个具体类对应一个表

    1. 2. <?xml version="1.0"?> <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate ...

  4. Hibernate逍遥游记-第13章 映射实体关联关系-006双向多对多(分解为一对多)

    1. 2. <?xml version="1.0"?> <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate ...

  5. Hibernate逍遥游记-第13章 映射实体关联关系-005双向多对多(使用组件类集合\<composite-element>\)

    1. <?xml version="1.0"?> <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hi ...

  6. Hibernate逍遥游记-第13章 映射实体关联关系-004双向多对多(inverse="true")

    1. <?xml version="1.0"?> <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hi ...

  7. Hibernate逍遥游记-第13章 映射实体关联关系-003单向多对多

    0. 1. drop database if exists SAMPLEDB; create database SAMPLEDB; use SAMPLEDB; create table MONKEYS ...

  8. Hibernate逍遥游记-第13章 映射实体关联关系-002用主键映射一对一(<one-to-one constrained="true">、<generator class="foreign">)

    1. <?xml version="1.0"?> <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hi ...

  9. Hibernate逍遥游记-第13章 映射实体关联关系-001用外键映射一对一(<many-to-one unique="true">、<one-to-one>)

    1. <?xml version="1.0"?> <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hi ...

随机推荐

  1. javascript refresh page 几种页面刷新的方法

    Javascript刷新页面的几种方法:1    history.go(0) 2    location.reload() 3    location=location 4    location.a ...

  2. mysql中log

    mysql的主从模式配置 1.改主库配置文件:D:\Program Files\MySQL\MySQL Server 5.5(my.ini/my.cnf)在下面加入 [mysqld] log=c:/a ...

  3. Oracle 表的访问方式(1) ---全表扫描、通过ROWID访问表

    1.Oracle访问表的方式 全表扫描.通过ROWID访问表.索引扫描 2.全表扫描(Full Table Scans, FTS) 为实现全表扫描,Oracle顺序地访问表中每条记录,并检查每一条记录 ...

  4. Hadoop管理员的十个最佳实践(转)

    前言 接触Hadoop有两年的时间了,期间遇到很多的问题,既有经典的NameNode和JobTracker内存溢出故障,也有HDFS存储小文件问题,既有任务调度问题,也有MapReduce性能问题.遇 ...

  5. Java HTML页面抓取实例

    import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import ...

  6. MS MQ 消息队列

    一.安装 先在 控制面板—程序和功能—打开或关闭我windows功能.把 msmq全勾起来 如下图: 二.右击-消息对列—属性—服务器安全性,把禁用未经身份验证的RPC调用勾去掉, 三.然后在专用队列 ...

  7. python之库组织

    python可重用代码库的组织依赖二个概念: 1. 模块 module 2. 函数 function 没有Java哪么灵活的包概念, 比较偏近C++的namespace.

  8. SOS.dll(SOS 调试扩展)

      SecAnnotate.exe(.NET 安全批注器工具) SignTool.exe(签名工具) Sn.exe(强名称工具) SOS.dll(SOS 调试扩展)   SqlMetal.exe(代码 ...

  9. 【python】 开始第一个项目

    根据这篇文章开始上手 http://www.oschina.net/translate/the-flask-mega-tutorial-part-i-hello-world 再加点东西 如果你的环境是 ...

  10. SQL Server 2008导出数据为SQL脚本的操作步骤

    以前我们要将一个表中的数据导出为脚本,那么只有在网上找一个导出数据的Script,然后运行就可以导出数据脚本了.现在在SQL Server 2008的Management Studio中增加了一个新特 ...