сопоставление один ко многим в одной таблице в Hibernate - PullRequest
3 голосов
/ 27 марта 2010

У меня есть таблица, содержащая первичный ключ и внешний ключ, который ссылается на ту же таблицу. Как я могу реализовать это отображение в спящем режиме ... Структура таблиц выглядит следующим образом ..

Dept (
    deptno pk,
    dname,
    location
)

employee (
    empid pk,
    ename,
    Manager Id Foregin key references Employee(empid),
    deptno Foregin key references dept(deptno),
    doj date,
)

1 Ответ

6 голосов
/ 27 марта 2010

Если отношение двунаправленное, вы можете получить что-то вроде этого:

@Entity
public class Employee implements Serializable {
    private Long empid;
    private String ename;
    private Employee manager;
    private Set<Employee> employees = new HashSet<Employee>();
    private Dept deptno;
    private Date doj;

    @Id
    @GeneratedValue
    public Long getEmpid() {
        return empid;
    }

    public void setEmpid(Long empid) {
        this.empid = empid;
    }

    @ManyToOne
    public Employee getManager() {
        return manager;
    }

    public void setManager(Employee manager) {
        this.manager = manager;
    }

    @OneToMany(mappedBy = "manager")
    public Set<Employee> getEmployees() {
        return employees;
    }

    public void setEmployees(Set<Employee> employees) {
        this.employees = employees;
    }

    @ManyToOne
    public Dept getDeptno() {
        return deptno;
    }

    public void setDeptno(Dept deptno) {
        this.deptno = deptno;
    }

    // ...
}

Ничего особенного для Dept:

@Entity
public class Dept implements Serializable {
    private Long deptno;
    private String dname;
    private String location;

    @Id
    @GeneratedValue
    public Long getDeptno() {
        return deptno;
    }

    public void setDeptno(Long deptno) {
        this.deptno = deptno;
    }

    // ...
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...