【问题标题】:Tutorial creates tables manually instead of letting hibernate do it, why?Tutorial 手动创建表而不是让 hibernate 来做,为什么?
【发布时间】:2014-08-13 08:18:04
【问题描述】:

我正在关注this tutorial 使用 SessionFactory 进行 Spring Hibernate 集成。向下滚动到 DbUtil.java,使用初始化方法创建表。

到目前为止,我还不需要hibernate自动创建表这样的方法。那么这个初始化器的目的是什么?有什么优势吗?它似乎是不必要的复杂性。

DbUtil.java

public void initialize(){
    DataSource dataSource = getDataSource();
    try {
        Connection connection = dataSource.getConnection();
        Statement statement = connection.createStatement();
statement.executeUpdate("CREATE TABLE PERSON (ID INTEGER, NAME VARCHAR(50), EMAIL VARCHAR(100))");
        statement.close();
        connection.close();
    } catch (SQLException e) {
        e.printStackTrace();
    }

【问题讨论】:

    标签: spring hibernate dao


    【解决方案1】:

    我不确定,但它可能会显示它是如何完成的,以防 hibernate.hbm2ddl.auto 属性未设置为创建。 通常,您不会允许 hibernate 在生产环境中自动创建表(尽管有人这样做)。

    【讨论】:

    • 你应该强调你的第二句话! hibernate.hbm2ddl.auto 在早期开发中很棒,但我无法想象不手动查看表(以及视图和索引)创建脚本。
    猜你喜欢
    • 2015-10-03
    • 1970-01-01
    • 2013-10-02
    • 2015-02-22
    • 2014-07-01
    • 1970-01-01
    • 1970-01-01
    • 2022-12-10
    • 2010-11-30
    相关资源
    最近更新 更多