我的 O/R Mapping 之旅(二)

本文是关于O/R Mapping系列的第二部分,主要讲解了如何配置Hibernate映射文件,特别是主键生成策略的使用,包括native、identity、sequence等。通过示例解析了AutoInfo和People表的映射文件,探讨了级联操作(cascade)的重要性,并解释了inverse属性在双向关联中的作用。
摘要由CSDN通过智能技术生成

    在上一部分我只讲到如何通过数据库中的表生成映射文件和 POJO。在这一部分中,我将讲解映射文件。

    先看看这张表:

                   

 

 

 

在现实的车辆管理系统中,绝对不会把车辆信息和拥有人信息放在一张表中。应该是“一个拥有者”拥有一或多个“车辆”。来看看分解后的表,PEOPLE 表,设置 OWNER_ID 主键:

              

              

    AUTO_INFO 表,设置 AUTO_ID 主键:

             

   
为两表配置主、外键关系,设置 PEOPLE 表为主表:

             

   
为两表配置主、外键关系,设置 PEOPLE 表为主表:

             

   
为两表配置主、外键关系,设置 PEOPLE 表为主表:

      

打开 Eclipse,为这两张表生成映射文件。

AutoInfo.hbm.xml

<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC
 "-//Hibernate/Hibernate Mapping DTD//EN"
 "http://hibernate.sourceforge.net/hibernate-mapping-2.0.dtd" >

<hibernate-mapping package="bo">
 <class name="AutoInfo" table="AUTO_INFO">
  <id
   column="AUTO_ID"
   name="Id"
   type="integer"
  >
   <generator class="vm" />
  </id>
  <property
   column="LICENSE_PLATE"
   length="20"
   name="LicensePlate"
   not-null="false"
   type="string"
   />
  <many-to-one
   class="People"
   name="OwnerNo"
   not-null="true"
  >
   <column name="OWNER_NO" />
  </many-to-one>
 </class>
</hibernate-mapping>

<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC
 "-//Hibernate/Hibernate Mapping DTD//EN"
 "http://hibernate.sourceforge.net/hibernate-mapping-2.0.dtd" >

<hibernate-mapping package="bo">
 <class name="AutoInfo" table="AUTO_INFO">
  <id
   column="AUTO_ID"
   name="Id"
   type="integer"
  >

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值