10

有人问我如何为表中引用表的主键的列创建休眠映射。

例如,Employee 表有 EMP_ID 作为主键,它还有 MGR_ID 列来知道员工的经理。由于经理也是员工,因此它将在同一张表中。因此,每个员工行都有一个经理 ID,它也是一个员工。

  1. 我们如何为这个员工类创建 Hibernate 映射?
  2. Employee 类会是什么样子?它是否只有一个经理 ID,或者它将包含另一个 Employee 对象作为成员变量。

请帮助我解决这种情况。谢谢你。

4

1 回答 1

21

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
}

有关完整示例,请参阅此链接:

Hibernate Self Join Annotations 一对多映射示例

于 2015-04-30T19:16:38.297 回答