2015-04-30 45 views
2

有人問我如何爲引用表的主鍵的表中的列創建hibernate映射。如何爲自引用表創建Hibernate映射

例如,僱員表具有EMP_ID作爲主鍵,並且它還具有MGR_ID列以知道該僱員的經理。作爲一名經理也是一名員工,它將在同一張桌子上。因此,每個員工行都有一個管理員標識,也是一名員工。

  1. 我們如何爲此員工類創建Hibernate映射?
  2. Employee類怎麼樣?它是否只有一個管理員標識,或者它將包含另一個員工對象作爲成員變量。

請幫助我處理這種情況。謝謝。

回答

4

您可以在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<employee>(); 

    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