教程手动创建表而不是让休眠来做,为什么?

时间:2014-08-13 08:18:04

标签: spring hibernate dao

我在使用SessionFactory进行Spring Hibernate Integration时this tutorial。向下滚动到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();
    }

1 个答案:

答案 0 :(得分:2)

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