2013-04-08 144 views
0

我不確定這是否可以在Spring 3框架中使用hibernate和mysql來完成,但是我會很感激任何幫助。我有兩個班 - 員工和考官。審查員是一名僱員,一名僱員也是一名審查員。同時每位考官可以檢查一名或多名僱員,一名僱員只能有一名考官。Hibernate的Mysql映射關係

基本上我想知道的是,如果有可能顯示員工和考官之間的繼承關係,並且同時映射從考官到員工的單向一對多關係?

我至今 - 考官表繼承約束:

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`)): 

我是爲展示一對多的行爲,思想的聯接表但獲取表的compsite鍵是不可能的,因爲我有一個primarykeyjoin列。

我將不勝感激任何幫助,因爲我一直被困難了幾天。

回答

0

Java不允許多重繼承,所以除非您使用的是接口,否則我不確定您打算如何製作彼此描述的兩個類實例。

您可以創建一個名爲EmployeeExaminer的類,並將其引用。使用註釋它可能看起來是這樣的:在註釋

@Entity 
public class EmployeeExaminer { 
    @ManyToOne 
    private EmployeeExaminer getExaminer() {/*...*/} 

    @OneToMany 
    private List<EmployeeExaminer> getEmployees() { /*...*/} 
} 

文檔可以發現here

+0

這就是我的想法。感謝您的回覆,我會嘗試參考,看看它是否有效。 – user2259555 2013-04-09 15:33:11

+0

另一種選擇是將一個基本抽象類與定義的所有共享片斷相關聯,然後讓您的實際域對象擴展此抽象類。 Hibernate允許抽象實體,甚至允許你指定是否希望所有摘要在同一個表中,或者作爲一個連接來完成,常見的東西在一個表中,而添加的東西在另一個表中。 – CodeChimp 2013-04-09 17:26:49

-1

謝謝@CodeChimp的回覆。我結束了第一個建議,並使用@onetomany和@manytoone註釋創建了一個自我引用類。它的幫助類適用。我只是在實現控制器和jsp頁面來添加父/子時遇到一些問題。但我會爲此提出一個新問題。再次感謝。

+0

這不是一個答案好嗎?.... – 2013-05-03 01:56:54