如:department与employee
employee中有一个department_id的外键
Department:
public class Department implements Serializable {
private Integer id;
private String name;
public Department() {
}
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;
}
}
Employee:
public class Employee implements Serializable {
private Integer id;
private String name;
private Department department;
public Department getDepartment() {
return department;
}
public void setDepartment(Department department) {
this.department = department;
}
public Employee() {
}
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;
}
}
Department.hbm.xml:(与普通的映射文件一样)
<hibernate-mapping>
<class name="cn.framelife.hibernate.entity.Department" table="department"
catalog="hibernate">
<id name="id" type="java.lang.Integer">
<column name="id" />
</id>
<property name="name" type="java.lang.String">
<column name="name" length="45" not-null="true" />
</property>
</class>
</hibernate-mapping>
Employee.hbm.xml:
<hibernate-mapping>
<class name="cn.framelife.hibernate.entity.Employee" table="employee"
catalog="hibernate">
<id name="id" type="java.lang.Integer">
<column name="id" />
<generator class="native"></generator>
</id>
<property name="name" type="java.lang.String">
<column name="name" length="45" not-null="true" />
</property>
<many-to-one name="department" column="department_id"></many-to-one>
</class>
</hibernate-mapping>
增加:
transaction = session.beginTransaction();
Department department = new Department();
department.setName("bb");
session.save(department);
Employee employee = new Employee();
employee.setDepartment(department);
employee.setName("li");
session.save(employee);
transaction.commit();
查询:
查询employee的时候可以得到外键关联的department对象。