如: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对象。