2015-05-28 5 views
2

Вот моя сущность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> 

У меня есть пустая база данных под названием тест, имеющий пользователь и пароль «корень». Но когда я пытаюсь создать пользователя и сохранить его в базе данных, я получаю исключение:

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 

Что я сделал не так?

ответ

3

Это потому, что test.user недоступно в базе данных.

Либо нужно создать таблицу, прежде чем начать ваше приложение разъединить

(или)

Включить генерацию DDL гибернации истинно, чтобы позволить зимуют создать таблицу, если она не существует. (Не делайте этого в производстве или в среде QA, так как это не очень хорошая практика).

Добавьте это в список свойств спящего режима.

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

большого ответ, хорошая работа, спасибо) – Carmine

+0

@Carmine, вы можете! – K139

0

Добавьте ниже свойства в конфигурационный файл.

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

Благодаря

Смежные вопросы