我不确定在Spring 3框架中使用hibernate和mysql是否可以做到这一点,但我将不胜感激任何帮助。我有两个班 - 员工和考官。审查员是雇员,雇员也是审查员。同时,每个审查员可以检查一个或多个员工,而员工只能有一个审查员。
基本上我想知道的是,是否可以显示Employee和Examiner之间的继承,同时将一个单向的映射到Examiner到Employee?
到目前为止 - 具有继承约束的Examiner表:
CREATE TABLE `examiner` (
`employee_id` varchar(255) NOT NULL,
`employee_name` varchar(255) NOT NULL,
PRIMARY KEY (`enployee_id`),
FOREIGN KEY (`employee_id`) REFERENCES `employee` (`employee_id`)):
员工表:
CREATE TABLE `employee` (
`employee_id` varchar(255) NOT NULL,
`employee_name` varchar(255) DEFAULT NULL,
PRIMARY KEY (`employee_id`)):
我正在考虑使用连接表来显示一对多的行为,但是因为我有一个primarykeyjoin列,所以无法获取表的compsite键。
我很感激任何帮助,因为我被困了好几天。
答案 0 :(得分:0)
Java不允许多重继承,因此除非您使用的是接口,否则我不确定您打算如何将两个所描述的类实例相互映射。
你可以创建一个名为EmployeeExaminer的类,并使其自身引用。使用注释可能看起来像:
@Entity
public class EmployeeExaminer {
@ManyToOne
private EmployeeExaminer getExaminer() {/*...*/}
@OneToMany
private List<EmployeeExaminer> getEmployees() { /*...*/}
}
可以找到有关注释的文档here。
答案 1 :(得分:-1)
感谢@CodeChimp的回复。我最后关注了第一个建议,并创建了一个带有@onetomany和@manytoone注释的Self Reference类。它的助手类有效。我在实现控制器和jsp页面时遇到了一些问题,无法添加父/子。但我会为此提出一个新问题。再次感谢。