以下为例,一个用户对就一个部门,一个部门则对应有多个用户
1、实体类
一方类:user
public class User {
private int id;
private String name;
private int age;
private String pwd;
private Department dpt; //该属性与部门建立关系
.............set、get方法略
}
多方:Department
public class Department {
private int id;
private String name;
private Set
.............set、get方法略
}
2、映射配置文件
User.hbm.xml
- <hibernate-mapping>
- <class name="com.restfullDemo.model.User" table="t_user">
- <id name="id" type="int">
- <column name="id" />
- <generator class="native" />
- </id>
- <property name="name" type="java.lang.String">
- <column name="name" />
- </property>
- <property name="age" type="int">
- <column name="age" />
- </property>
- <property name="pwd" type="java.lang.String">
- <column name="pwd" />
- </property>
- <many-to-one name="dpt" class="com.restfullDemo.model.Department" fetch="join" lazy="false">
- <column name="dpt_id" />
- </many-to-one>
- </class>
注意:当使用 hql语句“from User”进行查询,并将结果转成List时,需要将 lazy="false"即为即时加载,默认为懒加载,则在转换时找不到Departmet的数据,会报类型转换错误。
Department.hbm.xml
- <hibernate-mapping>
- <class name="com.restfullDemo.model.Department" table="t_department">
- <id name="id" type="int">
- <column name="id" />
- <generator class="native" />
- </id>
- <property name="name" type="java.lang.String">
- <column name="NAME" />
- </property>
- <set name="users" table="user" inverse="false" lazy="false">
- <key>
- <column name="id" />
- </key>
- <one-to-many class="com.restfullDemo.model.User" />
- </set>
- </class>
- </hibernate-mapping>