Hibernate关联映射---多对一实例分析(单项关联)

一  关联映射类型

1.多对一(Employee - Department)

    多对一关联是一个部门可以有多个员工

    所用到的映射文件为:

       <many-to-one name="depart" column="depart_id"/>

二  代码分析

1.首先创建两个类,Department和Employee,并把他们关联起来

(1)Department类

package com.hbsi.domain;

//部门类

public class Department {

    private int id;

    private String name;

    public Department() {

       super();

       // TODO Auto-generated constructor stub

    }

    public Department(int id, String name) {

       super();

       this.id = id;

       this.name = name;

    }

    public int getId() {

       return id;

    }

    public void setId(int id) {

       this.id = id;

    }

    public String getName() {

       return name;

    }

    public void setName(String name) {

       this.name = name;

    }

    public String toString() {

       return "Department [id=" + id + ", name=" + name + "]";

    }

}

(2)Employee类

    package com.hbsi.domain;                                                                                                                                                       

//员工类    一般主鍵是建在多的一方                                                                 

public class Employee {                                                                

    private int id;                                                                    

    private String name;                                                                                                                     

    // 得到的是一个 对象,可以得到员工对应的部门的详细信息                                                      

    private Department depart;                                                         

                                                                                       

    public Employee() {                                                                

       super();                                                                       

       // TODO Auto-generated constructor stub                                        

    }                                                                                   

                                                                                       

    public Employee(int id, String name, Department depart) {                           

       super();                                                                       

       this.id = id;                                                                  

       this.name = name;                                                              

       this.depart = depart;                                                          

    }                                                                                  

                                                                                       

    public int getId() {                                                               

       return id;                                                                     

    }                                                                                  

                                                                                        

    public void setId(int id) {                                                        

       this.id = id;                                                                  

    }                                                                                  

                                                                                       

    public String getName() {                                                           

       return name;                                                                   

    }                                                                                  

                                                                                        

    public void setName(String name) {                                                 

       this.name = name;                                                              

    }                                                                                   

                                                                                       

    public Department getDepart() {                                                    

       return depart;                                                                  

    }                                                                                  

                                                                                       

    public void setDepart(Department depart) {                                          

       this.depart = depart;                                                          

    }                                                                                                                                                                                                                                            

    public String toString() {                                                         

       return "Employee [id=" + id + ", name=" + name + ", depart=" + depart          

              + "]";                                                                 

    }                                                                                  

}         

注:之所以在员工表中设主键是为了减少资源消耗,而如果设置

private int depart_id;     

通过员工查找部门的话,只能找到部门的id,得不到部门的其他信息 ,                                      

设置的Deparment的类对象作为外键,可以得到部门的所有信息

                                                                            

相关推荐