отображений между 2 таблиц (департамент и Employee) следующим образом (ссылка на изображение, показывающее отображение также входит в комплект):Как показать 2 различные типы отображений между 2 классов сущностей, придерживая ссылаются друг на друга
- В каждом отделе есть один и только один начальник отдела.
- В каждом отделе может быть более одного сотрудника.
- dept_id и empId являются первичными ключами соответствующих таблиц.
- dept_head (это идентификатор сотрудника), а отделом являются внешние ключи их соответствующих таблиц.
Mapping Employee and Department table
Я создал классы сущностей для указанных выше таблиц 2 (структура приведена ниже).
Сотрудник класса: класс
public class Employee implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@Column(name = "empId")
private Integer empId;
@Size(max = 45)
@Column(name = "name")
private String name;
@Size(max = 45)
@Column(name = "address")
private String address;
@Size(max = 45)
@Column(name = "grade")
private String grade;
@Size(max = 45)
@Column(name = "email")
private String email;
@JoinColumn(name = "dept", referencedColumnName = "dept_id")
@ManyToOne
private Department deptartment;
.. ...
}
Факультет:
public class Department implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@Basic(optional = false)
@NotNull
@Size(min = 1, max = 8)
@Column(name = "dept_id")
private String deptId;
@Size(max = 45)
@Column(name = "name")
private String name;
@JoinColumn(name = "dept_head", referencedColumnName = "empId")
@OneToOne
private Employee deptHead;
@OneToMany(mappedBy = "deptartment")
private List<Employee> employeeList;
....
...
}
Если я добавляю mappedBy в Сотрудника класса (как я сделал в отделе), чтобы показать отображение OneToOne между EmpId и deptHead, код компилируется и работает. Однако, если я не добавляю оператор mappedBy в класс Employee, как показывает вышеприведенный код, код все еще компилируется и работает нормально.
Я хотел бы знать, почему приведенный выше код работает, даже если я не предоставляю mappedBy в классе сотрудников.
Если кто-нибудь может помочь мне очистить вышеупомянутые сомнения и объяснить логику его работы, было бы здорово, поскольку я новичок в этом.