hibernatea實現一對多關聯映射關係

         我們以員工表和部門表爲例,多個員工對應一個部門,屬於一對多的關係,我們要在多的一端加入外鍵,所以我們在多的一端的封裝類里加入一的一端的屬性。

emp.java

public class Emp {
    private int empid;
    private String empname;
    private Dept dept;//在多的一端加入1的一端的屬性
	public int getEmpid() {
		return empid;
	}
	public void setEmpid(int empid) {
		this.empid = empid;
	}
	public String getEmpname() {
		return empname;
	}
	public void setEmpname(String empname) {
		this.empname = empname;
	}
	public Dept getDept() {
		return dept;
	}
	public void setDept(Dept dept) {
		this.dept = dept;
	}
	@Override
	public String toString() {
		return "Emp [empid=" + empid + ", empname=" + empname + ", dept="
				+ dept + "]";
	}
    
}
dept.java

package vo;

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

public class Dept {
private int deptid;
private String deptname;
private Set<Emp> emps=new HashSet<Emp>();//雙向一對多
public int getDeptid() {
	return deptid;
}
public void setDeptid(int deptid) {
	this.deptid = deptid;
}
public String getDeptname() {
	return deptname;
}
public void setDeptname(String deptname) {
	this.deptname = deptname;
}
public Set<Emp> getEmps() {
	return emps;
}
public void setEmps(Set<Emp> emps) {
	this.emps = emps;
}

}
emp.hbm.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-mapping PUBLIC 
    "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
    "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
    <hibernate-mapping package="vo">
    <class name="Emp">
    <id name="empid">
    <generator class="native"></generator>
    
    
    </id>
    <property name="empname"></property>
    <many-to-one name="dept" column="deptid" class="Dept"></many-to-one>
    <!--在多的一端加入many-to-one標籤  -->
    </class>
    </hibernate-mapping>
dept.hbm.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-mapping PUBLIC 
    "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
    "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
    <hibernate-mapping package="vo">
    <class name="Dept">
    <id name="deptid">
    <generator class="native"></generator>
    </id>
    <property name="deptname"></property>
    <!--雙向一對多需要在一的一端加入set  -->
    <set name="emps" >
    <key column="deptid"></key>
    <one-to-many class="Emp"/>
    </set>
    </class> 
    </hibernate-mapping>





發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章