Hibernate映射多对一文件,以及多对多等

来源:互联网 发布:linux 进入图形命令 编辑:程序博客网 时间:2024/05/29 11:30
public class Department {
      //部门类 1

private Integer id;
private String name;

private Set<Employee> emps = new HashSet<>();

        

        get/set、、、

}

public class Employee {
       //雇员类 多

 
private Integer id;
private String name;

        private Department dept;

     

       get/set、、、

}

映射文件:

Employee.hbm.xml

     <hibernate-mapping package="com.hibernate.select.entities">
    <class name="Employee" table="EMPLOYEE">
        
        <id name="id" type="java.lang.Integer">
            <column name="ID" />
            <generator class="native" />
        </id>
        
        <property name="name" type="java.lang.String">
            <column name="NAME" />
        </property>
        

        <!--这里直接配置Employee中 对应的dept属性-->
        <many-to-one name="dept" class="Department" >

            <!--外键名-->
            <column name="DEPT_ID"></column>
        </many-to-one>
    </class>
</hibernate-mapping>



Department.hbm.xml

<hibernate-mapping package="com.hibernate.select.entities">
    <class name="Department" table="DEPARTMENT">
        
        <id name="id" type="java.lang.Integer">
            <column name="DEPT_ID" />
            <generator class="native" />
        </id>
        
        <property name="name" type="java.lang.String">
            <column name="NAME" />
        </property>
        

        <!--inverse="true"放弃主动权-->
        <set name="emps" table="EMPLOYEE" inverse="true" lazy="true">
            <key>
                 <!-- 在雇员表中的外键列名字 -->
                <column name="DEPT_ID" />
            </key>
            <one-to-many class="Employee" />
        </set>
    </class>
</hibernate-mapping>


1 0