第九章 关系映射 多对一关联映射

来源:互联网 发布:网络压力测试工具 编辑:程序博客网 时间:2024/05/01 16:17

如:departmentemployee

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



原创粉丝点击