【发布时间】:2017-04-12 04:50:28
【问题描述】:
一开始我想告诉你,我是这个东西之王的新手。 我在为我的 spring MVC 应用程序创建正确的 sql 表时遇到了问题。为了管理我的数据库,我使用了 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);
}
和用户保姆
@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 * 用户名 * 密码 * 名 * 姓 * 性别 * 邮政编码
“用户监护人”: *电子邮件PK * 用户名 * 密码 * 名 * 姓 * 性别 * 邮政编码 * 工作类型 * 你想做什么
如果这对我来说是一个好的解决方案,请告诉我。
提前感谢您提供任何信息:)
【问题讨论】:
-
仅供参考,使用 Jboss Hibernate 工具(一个 Eclipse 插件),我们可以从数据库模式逆向工程 hibernate pojos。您不必真正自己创建它
标签: sql spring hibernate spring-mvc