Добавление отношения один ко многим к родительскому / дочернему элементу с собственной ссылкой
Используя Spring и Hibernate, могу ли я реализовать отношения один-ко-многим между родителем / потомком в классе самообращения и другом классе. То есть это самореферентный класс:
DB:
CREATE TABLE `employee` (
`employee_id` BIGINT(10) NOT NULL AUTO_INCREMENT,
`name` VARCHAR(50) NULL DEFAULT NULL,
`manager_id` BIGINT(20) NULL DEFAULT NULL,
PRIMARY KEY (`employee_id`),
CONSTRAINT `FK_MANAGER` FOREIGN KEY (`manager_id`) REFERENCES `employee`
(`employee_id`))
Модель:
@Entity
@Table(name="employee")
public class Employee {
@Id
@Column(name="employee_id")
@GeneratedValue
private Long employeeId;
@Column(name="name")
private String name;
@ManyToOne(cascade={CascadeType.ALL})
@JoinColumn(name="manager_id")
private Employee manager;
@OneToMany(mappedBy="manager")
private Set employee = new HashSet();
Теперь я хочу создать отношение один ко многим как для родителя / ребенка (менеджер / работник), так и для другого класса, например:
@OneToMany(mappedBy="manager")
private List course = new ArrayList();
@OneToMany(mappedBy="lecturer")
private List courses = new ArrayList();
Таким образом, и менеджер, и сотрудник будут связаны с одним или несколькими курсами. Класс курса:
@Entity
@Table(name = "courses")
@Component
public class Course implements Serializable
@ManyToOne
@JoinColumn(name="employee_id", insertable=false, updatable=false)
private Employee employee;
@ManyToOne
@JoinColumn(name="manager_id", insertable=false, updatable=false)
private Employee manager;
Тот'обзор того, что яЯ пытаюсь реализовать, но я хотел бы знать, возможно ли это, и если да, то как мне установить его в отношении БД и быть в состоянии сохранить отношение к БД через Hibernate.