Hibernate Mysql映射关系

时间:2013-04-08 23:17:29

标签: spring hibernate spring-mvc

我不确定在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键。

我很感激任何帮助,因为我被困了好几天。

2 个答案:

答案 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页面时遇到了一些问题,无法添加父/子。但我会为此提出一个新问题。再次感谢。