2013-09-10 2 views
3

Я использую Hibernate как ORM для моего проекта. Я использую mysql Database
У меня есть таблица «Продукты» внутри каталога «DB».
Я поместил @Table (name = "Products", schema = "catalog") аннотация для объекта Продукты в моем приложении.Спящий режим: помощь при разрешении исключения org.hibernate.HibernateException: Отсутствует таблица

Однако, когда я пытаюсь запустить приложение, я получаю следующее исключение. Не могли бы вы помочь мне решить эту проблему?

Exception: 
     Exception in thread "main" org.hibernate.HibernateException: Missing table:Products 
     at org.hibernate.cfg.Configuration.validateSchema(Configuration.java:1281) 
     at org.hibernate.tool.hbm2ddl.SchemaValidator.validate(SchemaValidator.java:155) 
     at org.hibernate.internal.SessionFactoryImpl.<init>(SessionFactoryImpl.java:508) 
     at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1769) 
     at org.eros.purchase.db.utils.HibernateUtil.configure(HibernateUtil.java:17) 
     at Test.main(Test.java:14) 

Любые мысли о том, как я могу это исправить?

+0

Недостающая таблица, идентифицированная не Продукты, а Пользователи. Посмотрите на это сопоставление и таблицу. –

+0

Исключение означает разницу между отсутствующей таблицей - Пользователи – gyan

+0

Проверьте свой класс сопоставления, где вы сопоставлены как пользователь, которого нет в базе данных –

ответ

0

Я думаю, что ваше сопоставление относится к таблице User, которая на самом деле не находится в базе данных. , поэтому проверить XML отображение зимуют

+0

Мое отображение ищет «Продукты». – Bourne

+0

Я установил описание вопроса. – Bourne

0
package com.mypackage; 
    import javax.persistence.Entity;//first check two annotations belong to right package 
    import javax.persistence.Table; 
    @Entity 
    @Table(name = "Products",schema="catalog") 
    public class Products{ 

    //entity attributes 
    } 

// второй контрольный файл отображения (если использовать), то есть зарегистрировать класс продуктов с правом правописании // или третьей проверки Hibernate Util, если мы зарегистрировать отображение класса как этот

public class CustomHibernateUtil{ 


private static Configuration getConfiguration(){ 

configuration.addAnnotatedClass(Products.class); 
return configuration; 

} 
} 
+0

Я указал отображение в «hibernate.cfg.xml». Ниже показан тег сопоставления в файле «hibernate.cfg.xml» Bourne

+0

Аннотации ниже в правильном пакете! – Bourne

3

Пожалуйста, обновите ваш файл hibernate.cfg.xml, добавив это свойство

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

я получил такое же исключение из Hiberna т.е. В моем случае это связано с тем, что пользователю базы данных не было разрешено видеть таблицы. Таблицы были окончательно размещены в базе данных.

После того как я назначил роли db_datareader пользователям этой базы данных он сработал.

Однако в другом случае, когда таблицы на самом деле не были там, я получил точно такое же исключение из спящего режима. В случаях, когда есть таблицы, я думаю, что спящий режим может не показывать больше информации из соображений безопасности.

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