建立一对多单向关联关系

有Customer.java和Order.java两个类,分别代表客户表和定单表,建立单向一对多的关系。
  customer.java的代码如下:
 
  package mypack;
 
  import java.io.Serializable;
 
  public class Customer implements Serializable{
   private Long id;
   private String name;
   
   //此处省略构造方法,以及id和name属性的访问方法
  }
 
  Order.java的代码如下:
 
  package mypack;
 
  import java.io.Serializable;
 
  public class Order implements Serializable{
   private Long id;
   private String orderNumber;
    private Customer customer;
   
   //此处省略构造方法,以及id和orderNumber属性的访问方法
   
   public Customer getCustomer(){
    return customer;
   }
   
   public void setCustomer(Customer customer){
    this.customer = customer;
   }
  }
  注意到,在Order.java里有个customer的成员变量,为Customer类型。
 
  建立关联的xml源代码。
  Customer.hbm.xml如下:
 
  <hibernate-mapping>
   <class name="mypack.Customer" table="CUSTOMER">
    <id name="id" type="long" column="ID">
     <generator class="increment"/>
    </id>
    
    <property name="name" type="string">
     <column name="NAME" length="15"/>
    </property>
   </class>
  </hibernate-mapping>
 
  Order.hbm.xml如下:
  <hibernate-mapping>
   <class name="mypack.Order" table="ORDERS">
    <id name="id" type="long" column="ID">
     <generator class="increment"/>
    </id>
    
    <property name="orderNumber" type="string">
     <column name="ORDER_NUMBER" length="15"/>
    </property>
    
     <many-to-one name="customer" column="CUSTOMER_ID"
           class="mypack.CUSTOMER"
           not-null="true"/>
   </class>
  </hibernate-mapping>
  在Order.hbm.xml文件中使用<many-to-one>元素映射一对多的关联。它包括以下属性:
  .name:设定待映射的持久化类的属性名,此处为Order类的customer属性。
  .column:设定和持久化类的属性对应的表的外键,此处为ORDERS表的外键CUSTOMER_ID。
  .class:设定持久化类的属性的类型,此处设定customer属性为Customer类型
  .not-null:如果为true,表示customer属性不允许为null,该属性默认值为false。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值