2016-11-28 95 views
0

一开始我想告诉大家,我是这个国王的新人。 我在为我的Spring MVC应用程序创建正确的sql表时遇到了问题。为了管理我的数据库,我使用了Hibernate。我的应用程序有两种类型的用户: *小学 - 姓名,电子邮件, *二次 - 这在我的脑海里应该扩大“主”,因为它得到了加额外这仅仅属于“二级”相同的属性使用Hibernate创建表格

到目前为止,我创建两个机型的用户:

用户


@Entity 
    @Table(name = "users", catalog = "findbabysister") 
    public class User { 

     @Id 
     @Column(name = "username", unique=true, 
     nullable = false, length = 45) 
     private String email; 

     @Column(name = "password") 
     private String password; 

     private String passwordConfirm; 

     @Column(name = "enabled") 
     private boolean enabled = true; 

     @Column(name = "firstName") 
     private String firstName; 

     @Column(name = "lastName") 
     private String lastName; 

     @Column(name = "sex") 
     private boolean sex; 

     @Column(name = "zipCode") 
     private String zipCode; 

     private Set<UserRole> userRole = new HashSet<UserRole>(0); 
} 

和UserNanny


@Entity 
@Table(name = "usersGuardian", catalog = "findbabysister") 
public class UserNanny extends User{ 

    @Column(name = "typOfJob") 
    private String typOfJob; 
    @Column(name = "whatUwannaDo") 
    private String whatUwannaDo; 

    public String getTypOfJob() { 
     return typOfJob; 
    } 
    public void setTypOfJob(String typOfJob) { 
     this.typOfJob = typOfJob; 
    } 
    public String getWhatUwannaDo() { 
     return whatUwannaDo; 
    } 
    public void setWhatUwannaDo(String whatUwannaDo) { 
     this.whatUwannaDo = whatUwannaDo; 
    } 
} 

现在我想知道如何正确创建表。我知道我可以使用单桌战略,但这不是一个专业的方法来完成这项任务。我的想法是创建两个表是这样的:

“用户”: *电子邮件PK *用户名 *密码 *姓 *姓氏 *性别 *邮编

“UsersGuardian”: *电子邮件PK *用户名 *密码 *姓 *姓氏 *性别 *邮编 * typeOfJob * whatUWannaDo

请让我知道,如果这是一个很好的解决方案在我的情况。

预先感谢任何信息:)

+0

仅供参考,使用JBoss Hibernate的工具(Eclipse插件),我们可以逆向工程冬眠从数据库架构的POJO。你不必自己创造它 –

回答