2012-03-22 151 views
1

我想用一個抽象的超類創建兩個表播放框架超類

我有3個用戶 - >全職用戶,兼職的用戶,他們幾乎相同的數據

我創建但該表用戶未創建模型:( 我該怎麼辦? 由於事先

型號全職用戶

@Entity 
public class User extends Model{ 


    public String name; 
    public Date start; 
    public Date end; 
    public boolean status; 


...... 

    public Project() { 
     super(); 
      } 
} 

型號兼職用戶

@Entity 
public class partTimeUser extends User { 

    public Time startTime ; 
    public Time endTime; 
} 

-----------------------------------2ºREPLY ----------------------------------------

我可以這樣嗎? 或在獲取對象時有所不同?

型號用戶

@MappedSuperclass 
public class User extends Model{ 
    public String name; 
    public Date start;  
    public Date end; 
    public boolean status; 
    ...... 
    public Project() { 
     super(); 
     } 
} 

型號兼職用戶

@Entity 
public class partTimeUser extends User { 
    public Time startTime ; 
    public Time endTime; } 
} 

類全部用戶

@Entity 
public class partTimeUser extends User { 
} 

回答

2

在JPA你應該添加關於傳承的類型做了一些註解。

@Inheritance(strategy = InheritanceType.JOINED) 
@Table(name = "USER") 
@Entity 
public class User ... 

@Table(name = "PART_TIME_USER") 
@Entity 
public class PartTimeUser extends User ... 

P.S. @Table註釋是沒有必要的。不過,我更願意定義它。它使代碼及其與數據庫對象的連接更具可讀性。

+0

謝謝,但我可以做像「2º回覆」 – Daniel 2012-03-22 11:45:31

+0

我認爲,這也將工作。你最終會得到兩個使用大量相同列的表(PartTimeUser和FullTimeUser)。 – magomi 2012-03-22 12:29:30

+0

magomi 你的方式不行,它不執行用戶類 – Daniel 2012-03-22 13:33:31