Spring と Hibernate を使用して、自己参照クラスの親/子と別のクラスとの間に 1 対多の関係を実装できますか。つまり、これは自己参照クラスです。
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> employee = new HashSet<Employee>();
ここで、親/子 (マネージャー/従業員) と次のような別のクラスの両方に 1 対多の関係を作成したいと考えています。
@OneToMany(mappedBy="manager")
private List<Course> course = new ArrayList<Course>();
@OneToMany(mappedBy="lecturer")
private List<Course> courses = new ArrayList<Course>();
したがって、マネージャーと従業員の両方が 1 つまたは複数のコースに関連付けられます。コースクラス:
@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;
これは私が実装しようとしているものの概要ですが、これが可能かどうか、また可能であればどのように DB 関係で設定し、休止状態を介して関係を db に保存できるかを知りたいです。