Your Ad Here
首页 | 编程语言 | 网站建设 | 游戏天堂 | 冲浪宝典 | 网络安全 | 操作系统 | 软件时空 | 硬件指南 | 病毒相关 | IT 认证
软讯网络 > 编程语言 > Java > 总结hibernate三中关联关系
【标  题】:总结hibernate三中关联关系
【关键字】:hibernate
【来  源】:http://blog.csdn.net/Ranen/archive/2007/04/15/1565631.aspx

总结hibernate三中关联关系

Your Ad Here 1.一对一的关联关系:
    1)PK
Car.hbm.xml
<?xml version="1.0" encoding="gbk"?>
<!DOCTYPE hibernate-mapping PUBLIC
    "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
    "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">   
<hibernate-mapping package="com.allanlxf.hibernate.association.o2o.entity">
  <class name="Car" table="car_pk">
    <id name="id" column="id" type="integer">
      <generator class="native" />
    </id>
    <property name="name" column="name" type="string" length="15" not-null="false"/>
    <property name="serialNumber" column="serial" type="string" length="30"/>
    <property name="manufacturer" column="manufacturer" type="string" length="50"/>
    <property name="produceDate" column="producedate" type="date" />   
    <!--关系维护者-->
    <one-to-one name="engine" class="Engine" cascade="all"/>
  </class>
</hibernate-mapping>

Engine.hbm.xml
<?xml version="1.0" encoding="gbk"?>
<!DOCTYPE hibernate-mapping PUBLIC
    "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
    "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">   
<hibernate-mapping package="com.allanlxf.hibernate.association.o2o.entity">
  <class name="Engine" table="engine_pk">
    <id name="id" column="id" type="integer">
      <generator class="foreign">
        <param name="property">car</param>
      </generator>
    </id>
    <property name="model" column="model" type="string" length="20"/>
    <property name="manufacturer" column="manufacturer" type="string" length="50"/>
    <property name="produceDate" column="producedate" type="date" />   
    <one-to-one name="car" class="Car" constrained="true"/>
  </class>
</hibernate-mapping>

    2)FK
Engine.hbm.xml
<?xml version="1.0" encoding="gbk"?>

<!DOCTYPE hibernate-mapping PUBLIC
    "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
    "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
   
<hibernate-mapping package="com.allanlxf.hibernate.association.o2o.entity">
  <class name="Engine" table="engine_fk">
    <id name="id" column="id" type="integer">
      <generator class="native"/>
    </id>
    <property name="model" column="model" type="string" length="20" not-null="true"/>
    <property name="manufacturer" column="manufacturer" type="string" length="50" not-null="true"/>
    <property name="produceDate" column="producedate" type="date" />
    <many-to-one name="car" class="Car" column="carid" unique="true" />
  </class>
</hibernate-mapping>
===================================================================================================
2.一对多的关联关系
Order.hbm.xml
<?xml version="1.0" encoding="gbk"?>
<!DOCTYPE hibernate-mapping PUBLIC
    "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
    "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">   
<hibernate-mapping package="com.allanlxf.hibernate.association.o2m.entity">
  <class name="Order" table="ec_order">
    <id name="id" column="id" type="integer">
      <generator class="native" />
    </id>
    <property name="owner" column="owner" type="string" length="15" not-null="true"/>
    <property name="phone" column="phone" type="string" length="15" not-null="true"/>
    <property name="address" column="address" type="string" length="50" />
    <set name="items" cascade="all-delete-orphan" inverse="true">
      <key column="orderid" />
      <one-to-many class="Item" />
    </set>
  </class>
</hibernate-mapping>

Item.hbm.xml
<?xml version="1.0" encoding="gbk"?>
<!DOCTYPE hibernate-mapping PUBLIC
    "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
    "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">   
<hibernate-mapping package="com.allanlxf.hibernate.association.o2m.entity">
  <class name="Item" table="ec_item">
    <id name="id" column="id" type="integer">
      <generator class="native" />
    </id>
    <property name="product" column="product" type="string" length="15" not-null="true"/>
    <property name="amount" column="amount" type="integer" not-null="true"/>
    <many-to-one name="order" column="orderid" not-null="true" foreign-key="fk_item_order"/>
  </class>
</hibernate-mapping>
==============================================================================================
3.多对多的关联关系
TarenaClass.hbm.xml
<?xml version="1.0" encoding="gbk"?>
<!DOCTYPE hibernate-mapping PUBLIC
    "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
    "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">   
<hibernate-mapping package="com.allanlxf.hibernate.association.m2m.entity">
  <class name="TarenaClass" table="class">
    <id name="id" column="id" type="integer">
      <generator class="native" />
    </id>
    <property name="name" column="name" type="string" length="15"/>
    <property name="startDate" column="sdate" type="date" />
    <property name="endDate" column="edate" type="date" />
    <!--指出数据库中保存关联关系的表名-->
    <set name="courses" table="class_course" cascade="persist">
      <key column="classid" />
      <many-to-many class="TarenaCourse" column="courseid" foreign-key="fk_course"/>
    </set>
  </class>
</hibernate-mapping>

TarenaCourse.hbm.xml
<?xml version="1.0" encoding="gbk"?>
<!DOCTYPE hibernate-mapping PUBLIC
    "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
    "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">   
<hibernate-mapping package="com.allanlxf.hibernate.association.m2m.entity">
  <class name="TarenaCourse" table="course">
    <id name="id" column="id" type="integer">
      <generator class="native" />
    </id>
    <property name="name" column="name" type="string" length="15" not-null="true"/>
    <property name="period" column="perion" type="integer" />
    <set name="classes" table="class_course" inverse="true">
      <key column="courseid" />
      <many-to-many class="TarenaClass" column="classid" foreign-key="fk_class"/>
    </set>
  </class>
</hibernate-mapping>
[IBM]Java? Platform, Enterprise Edition (Java EE) 最佳实践:【上一篇】
JSF+Hibernate+Spring学习:【下一篇】
【相关文章】
  • hibernate+spring的一个简单分页实现
  • 一个关于spring+hibernate的例子
  • Hibernate文档--目录
  • Hibernate参考文档-前言
  • Hibernate参考文档-第一章.Hibernate入门
  • NHibernate考察系列 04 枚举 自定义类型 组件类型
  • Hibernate 开发指南
  • 怎样在hibernate中使用数据库连接池
  • hibernate开发中的Date数据类型问题
  • Hibernate中关于get()和load()方法检索的区别
  • 【随机文章】
  • 身份证从15位到18位的计算程序
  • 服务器端数据验证
  • 新手如何学习C语言
  • C++编程修养
  • WinForm控件开发总结(六)-----控件属性类型转换器代码详解
  • UNICODE 介绍
  • sniffer技术原理及应用,包括编程方法和工具使用(2)
  • Google热会降温的
  • sed1line中文版[转载]
  • VC++ 6.0的小花招
  • 【相关评论】
    没有相关评论
    【发表评论】
    姓名:
    邮件:
    随机码*
    评论*
          
    |  首 页  |  版权声明  |  联系我们   |  网站地图  |
    CopyRight © 2004-2007 bbb软讯网络 All Rigths Reserved.