2012-03-22 102 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