我被问到如何为表中引用表的主键的列创建hibernate映射。
例如,Employee表将EMP_ID作为主键,并且还具有MGR_ID列以了解员工的经理。由于经理也是员工,它将在同一个表中。因此,每个Employee行都有一个经理Id,它也是一个雇员。
请帮助我解决这种情况。谢谢。
答案 0 :(得分:8)
您可以在manager
课程中引用Employee
。
该实体如下所示:
@Entity
@Table(name="EMPLOYEE")
public class Employee {
@Id
@Column(name="EMPLOYEE_ID")
@GeneratedValue
private Long employeeId;
@Column(name="FIRSTNAME")
private String firstname;
@Column(name="LASTNAME")
private String lastname;
@ManyToOne(cascade={CascadeType.ALL})
@JoinColumn(name="manager_id")
private Employee manager;
@OneToMany(mappedBy="manager")
private Set<employee> subordinates = new HashSet<employee>();
public Employee() {
}
public Employee(String firstname, String lastname) {
this.firstname = firstname;
this.lastname = lastname;
}
// Getter and Setter methods
}
请参阅此链接以获取完整示例: