2010-03-27 4 views
3

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

Dept (
    deptno pk, 
    dname, 
    location 
) 

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

@pascal сэр, пожалуйста, дайте ответ .. – saurabh

+0

Что вы пробовали? Нет никакой особой разницы в сопоставлении одного ко многим себе, чем к любому другому объекту. –

+0

@donoroby, можете ли вы предоставить файл сопоставления таблиц с надписью. На самом деле я не знаю, как его отобразить .... – saurabh

ответ

6

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

@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; 
    } 

    // ... 
} 
+0

thanx sir для ответа ур .. – saurabh