【问题标题】:Creating a table with Hibernate使用 Hibernate 创建表
【发布时间】: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


【解决方案1】:

Hibernate 提供了多种方法来解决这种情况。您可以根据您的要求拥有单个表或多个表。我建议你阅读以下页面,它解释了继承映射,这是你需要实现的。

http://docs.jboss.org/hibernate/orm/3.5/reference/en/html/inheritance.html

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-08-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-02-02
    相关资源
    最近更新 更多