hibernate关系映射(一对多)

Posted on 2008-08-21 12:00 H2O 阅读(337) 评论(0)  编辑  收藏 所属分类: hibernate
客户与订单---一对多
package com.yz.pojos;

import java.util.HashSet;
import java.util.Set;

/**
 * Customer generated by MyEclipse Persistence Tools
 
*/


public class Customer implements java.io.Serializable {

    
// Fields

    
private Integer cid;

    
private String name;

    
private String addr;
    
//一个客户可以有多个订单,一对多关系。但是一个客户不能有重复的订单,所以用Set集合,set集合不允许出现重复值
    
//set集合反映了一个客户的所有订单

    
private Set orderses = new HashSet(0);

    
// Constructors

    
/** default constructor */
    
public Customer() {
    }


    
/** minimal constructor */
    
public Customer(String name) {
        
this.name = name;
    }


    
/** full constructor */
    
public Customer(String name, String addr, Set orderses) {
        
this.name = name;
        
this.addr = addr;
        
this.orderses = orderses;
    }


    
// Property accessors

    
public Integer getCid() {
        
return this.cid;
    }


    
public void setCid(Integer cid) {
        
this.cid = cid;
    }


    
public String getName() {
        
return this.name;
    }


    
public void setName(String name) {
        
this.name = name;
    }


    
public String getAddr() {
        
return this.addr;
    }


    
public void setAddr(String addr) {
        
this.addr = addr;
    }


    
public Set getOrderses() {
        
return this.orderses;
    }


    
public void setOrderses(Set orderses) {
        
this.orderses = orderses;
    }


}
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"
>
<!-- 
    Mapping file autogenerated by MyEclipse Persistence Tools
-->
<hibernate-mapping>
    
<class name="com.yz.pojos.Customer" table="customer" lazy="false" >
        
<id name="cid" type="java.lang.Integer">
            
<column name="cid" />
            
<generator class="native" />
        
</id>
        
<property name="name" type="java.lang.String">
            
<column name="name" length="20" not-null="true" />
        
</property>
        
<property name="addr" type="java.lang.String">
            
<column name="addr" length="50" />
        
</property>
        
<!-- set集合保存该客户所有的订单,通过键cid查找订单 -->
        
<set name="orderses"  lazy="true" cascade="delete" inverse="true">
            
<key>
                
<column name="cid" not-null="true" />
            
</key>
            
<one-to-many class="com.yz.pojos.Orders" />
        
</set>
    
</class>
</hibernate-mapping>

订单与客户---多对一
package com.yz.pojos;

import java.util.Date;

/**
 * Orders generated by MyEclipse Persistence Tools
 
*/


public class Orders implements java.io.Serializable {

    
// Fields

    
private Integer oid;
    
//在多个订单中,每个订单只能属于一个客户,属于 多对一关系,所以要告诉每个订单属于哪一个客户对象
    private Customer customer;

    
private Date odate;

    
// Constructors

    
/** default constructor */
    
public Orders() {
    }


    
/** full constructor */
    
public Orders(Customer customer, Date odate) {
        
this.customer = customer;
        
this.odate = odate;
    }


    
// Property accessors

    
public Integer getOid() {
        
return this.oid;
    }


    
public void setOid(Integer oid) {
        
this.oid = oid;
    }


    
public Customer getCustomer() {
        
return this.customer;
    }


    
public void setCustomer(Customer customer) {
        
this.customer = customer;
    }


    
public Date getOdate() {
        
return this.odate;
    }


    
public void setOdate(Date odate) {
        
this.odate = odate;
    }


}

<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"
>
<!-- 
    Mapping file autogenerated by MyEclipse Persistence Tools
-->
<hibernate-mapping>
    
<class name="com.yz.pojos.Orders" table="orders" catalog="ssh">
        
<id name="oid" type="java.lang.Integer">
            
<column name="oid" />
            
<generator class="native" />
        
</id>
        
<!-- 订单与客户多对一,告诉订单所关联的客户是谁 -->
        
<many-to-one name="customer" class="com.yz.pojos.Customer" fetch="select">
            
<column name="cid" not-null="true" />
        
</many-to-one>
        
<property name="odate" type="java.util.Date" insert="true">
            
<column name="odate" length="19" not-null="true" />
        
</property>
    
</class>
</hibernate-mapping>

只有注册用户登录后才能发表评论。


网站导航:
 

posts - 0, comments - 21, trackbacks - 0, articles - 101

Copyright © H2O