关系映射的双向关联的多对一

关系映射的双向关联的多对一

package org.fkjava.bean;

import java.util.Date;
import java.util.Set;

/** 
 * 一对多  外键  双向 关联关系 配置 
 * 一个人  一个地址
 * 
 * @author hanfeili
 *  www.fkjava.org
 */
public class Person {
    private Integer id;
    private String name;
    private int password;
    private Date birthday;
    
    //一个set集合保存多个地址引用
    private Set<Address> addressSet;
    
    public Person() {
    }

    @Override
    public String toString() {
        return "Person [id=" + id + ", name=" + name + ", password=" + password
                + ", birthday=" + birthday + "]";
    }

    
    

    public Set<Address> getAddressSet() {
        return addressSet;
    }

    public void setAddressSet(Set<Address> addressSet) {
        this.addressSet = addressSet;
    }

    public Integer getId() {
        return id;
    }

    public void setId(Integer id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

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

    public int getPassword() {
        return password;
    }

    public void setPassword(int password) {
        this.password = password;
    }

    public Date getBirthday() {
        return birthday;
    }

    public void setBirthday(Date birthday) {
        this.birthday = birthday;
    }

}
----------------------------------------------------------------------
package org.fkjava.bean;

/**
 * 一对多  外键  双向 关联关系 配置 
 * 
 * @author hanfeili www.fkjava.org
 */
public class Address {
    private Integer id;
    /**
     * 邮政编码
     */
    private String codes;
    /**
     * 具体地址
     */
    private String des;
    //因为是 双向 关联 ,所以需要在address类
    //中也要有person
    private Person person;
    
    @Override
    public String toString() {
        return "Address [id=" + id + ", codes=" + codes + ", des=" + des + "]";
    }

    public String getCodes() {
        return codes;
    }

    public void setCodes(String codes) {
        this.codes = codes;
    }

    public String getDes() {
        return des;
    }

    public void setDes(String des) {
        this.des = des;
    }

    public Person getPerson() {
        return person;
    }

    public void setPerson(Person person) {
        this.person = person;
    }
    public Integer getId() {
        return id;
    }

    public void setId(Integer id) {
        this.id = id;
    }
}
<?xml version="1.0"?>

<!DOCTYPE hibernate-mapping SYSTEM "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">

<!-- 一对多 外键 双向 关联关系 配置 -->

-<hibernate-mapping package="bean">


-<class table="t_person" name="Person">


-<id name="id">

<generator class="identity"/>

</id>

<property name="name"/>

<property name="password"/>

<property name="birthday"/>

<!-- 通过Set配置一个人对应的多个地址的关联关系 inverse=true表示在Person端不维护关系 -->



-<set name="addressSet" inverse="true" cascade="all">

<!-- 指定adddrssSet集合中的数据对应t_person的的一个外键 -->


<key column="p_id"/>

<!-- 指定Person 关联的实例类型 -->


<one-to-many class="Address"/>

</set>

</class>


-<class table="t_address" name="Address">


-<id name="id">

<generator class="identity"/>

</id>

<property name="codes"/>

<property name="des"/>

<!-- not-null="true" 指定外键不能为 null -->


<many-to-one name="person" column="p_id" not-null="true"/>

</class>

</hibernate-mapping>

 

posted on 2015-01-04 15:08  aicpcode  阅读(183)  评论(0编辑  收藏  举报

导航