2016-12-16 84 views
0

我的人一個簡單的JOINED層次:休眠繼承:兩個孩子分享父母

@Entity 
@Inheritance(strategy=InheritanceType.JOINED) 
@Table(name="person") 
public class Person implements Serializable 

@Entity 
@Table(name="student") 
@PrimaryKeyJoinColumn(name="id") 
public class Student extends Person 

@Entity 
@PrimaryKeyJoinColumn(name="id") 
@Table(name="teacher") 
public class Teacher extends Person 

是否有可能有一個人誰是一名教師,同時是學生嗎?

回答

0

我傾向於建議您爲教師添加一個字段,指示學生身份而不更改定義的層次結構。即

@Entity 
@PrimaryKeyJoinColumn(name="id") 
@Table(name="teacher") 
@Table(isStudent="True/False") 
public class Teacher extends Person 

或者,你有沒有考慮過讓第三堂課代表一個同樣是學生的老師,作爲Person的延伸?

@Entity 
@PrimaryKeyJoinColumn(name="id") 
@Table(name="teacher-student") 
public class TeacherStudent extends Person 
+0

這是否回答幫你呢? –