如何为自引用表创建HibernateMap

fjaof16o  于 2022-12-19  发布在  其他
关注(0)|答案(1)|浏览(163)

有人问我,如何为表中引用表主键的列创建HibernateMap。
例如,Employee表具有EMP_ID作为主键,并且还具有MGR_ID列以了解该雇员的经理。由于经理也是Employee,因此它将位于同一表中。因此,每个Employee行都具有经理ID,该经理ID也是雇员。
1.如何为这个Employee类创建HibernateMap?

  1. Employee类看起来是什么样的?它是只有一个manager ID,还是包含另一个Employee对象作为成员变量。
    请帮我处理这种情况谢谢。
gajydyqb

gajydyqb1#

您可以在Employee类中引用manager
实体如下所示:

@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<>();
 
    public Employee() {
    }
 
    public Employee(String firstname, String lastname) {
        this.firstname = firstname;
        this.lastname = lastname;
    }
         
    // Getter and Setter methods
}

有关完整示例,请参阅此链接:
Hibernate Self Join Annotations One To Many mapping example

相关问题