找不到Hibernate表

时间:2015-05-28 14:19:58

标签: java hibernate

这是我的实体

@Entity
public class User {

    @Id
    private int id;
    private String name;

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }
}

这是我的hibernate.cfg.xml

<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE hibernate-configuration SYSTEM
        "http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">

<hibernate-configuration>
    <session-factory>
        <property name="hibernate.dialect">
            org.hibernate.dialect.MySQLDialect
        </property>
        <property name="hibernate.connection.driver_class">
            com.mysql.jdbc.Driver
        </property>

        <!-- Assume test is the database name -->
        <property name="hibernate.connection.url">
            jdbc:mysql://localhost:3306/test
        </property>
        <property name="hibernate.connection.username">
            root
        </property>
        <property name="hibernate.connection.password">
            root
        </property>

        <!-- List of XML mapping files -->
        <mapping class="User"/>

    </session-factory>
</hibernate-configuration>

我有一个名为test的空数据库,其中包含用户和密码&#34; root&#34;。但是当我尝试创建用户并将其保存到数据库时,我得到一个例外

Exception in thread "main" org.hibernate.exception.SQLGrammarException: could not execute statement

Caused by: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Table 'test.user' doesn't exist

我做错了什么?

2 个答案:

答案 0 :(得分:3)

这是因为test.user在数据库中不可用。

您需要在启动应用程序服务器之前创建表

(或)

启用hibernate DDL生成为true,让hibernate创建表(如果不存在)。 (不要在生产或QA环境中这样做,因为这不是一个好习惯)。

将其添加到休眠属性列表中。

<property name="hibernate.hbm2ddl.auto">update</property>

答案 1 :(得分:0)

在配置文件中添加以下属性。

   <property name="hbm2ddl.auto">create</property>

由于