本文以部门和职员的关系为例:一个部门下有多名员工,一名员工隶属于一个部门。
一、部门实体类:
package com.summer.entity;
import java.io.Serializable;
import java.util.List;
import javax.persistence.CascadeType;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.OneToMany;
import javax.persistence.Table;
import org.hibernate.annotations.GenericGenerator;
@Entity
@Table(name = "dept")
public class Department implements Serializable {
private static final long serialVersionUID = -6796418968556782582L;
@Id
@GenericGenerator(name = "system_uuid", strategy = "uuid")
@GeneratedValue(generator = "system_uuid")
private String id;
private String deptName;
//mappedBy中的值:"多的一方"所引用的"一的一方"的属性
@OneToMany(targetEntity=Employee.class,cascade={CascadeType.ALL},mappedBy="dept")
private List<Employee> empts;
public Department() {
}
public Department(String id, String deptName) {
this.id = id;
this.deptName = deptName;
}
public Department(String id, String deptName, List<Employee> empts) {
super();
this.id = id;
this.deptName = deptName;
this.empts = empts;
}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getDeptName() {
return deptName;
}
public void setDeptName(String deptName) {
this.deptName = deptName;
}
public List<Employee> getEmpts() {
return empts;
}
public void setEmpts(List<Employee> empts) {
this.empts = empts;
}
}
二、员工实体类:
package com.summer.entity;
import java.io.Serializable;
import javax.persistence.CascadeType;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.ManyToOne;
import javax.persistence.Table;
import org.hibernate.annotations.GenericGenerator;
@Entity
@Table(name = "employee")
public class Employee implements Serializable {
private static final long serialVersionUID = 2673329649400196245L;
@Id
@GenericGenerator(name = "system_uuid", strategy = "uuid")
@GeneratedValue(generator = "system_uuid")
private String id;
private String empName;
@ManyToOne(targetEntity=Department.class,cascade={CascadeType.ALL})
private Department dept;
public Employee(String id, String empName, Department dept) {
this.id = id;
this.empName = empName;
this.dept = dept;
}
public Employee() {
}
public Employee(String id, String empName) {
this.id = id;
this.empName = empName;
}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getEmpName() {
return empName;
}
public void setEmpName(String empName) {
this.empName = empName;
}
public Department getDept() {
return dept;
}
public void setDept(Department dept) {
this.dept = dept;
}
}