4

我在我的项目中使用 Hibernate 作为 ORM。我使用 mysql 数据库
我在数据库“目录”中有一个表“产品”。
我已将实体 Products 的 @Table(name="Products",schema="catalog") 注释放在我的应用程序中。

但是,当我尝试运行应用程序时,出现以下异常。你能帮我解决这个问题吗?

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)

关于如何解决这个问题的任何想法?

4

4 回答 4

3

Please update your hibernate.cfg.xml file by adding this property

<property name="hibernate.hbm2ddl.auto">create</property>
or 
<property name="hibernate.hbm2ddl.auto">update</property>
于 2013-09-10T15:00:18.530 回答
1

我从休眠中得到了同样的例外。就我而言,这是因为数据库用户没有被正确授权查看表。这些表肯定存在于数据库中。

在我将角色db_datareader分配给该数据库的用户后,它就起作用了。

但是,在另一种情况下,表实际上并不存在,我从休眠中得到了完全相同的异常。在表格存在的情况下,我认为由于安全原因,休眠可能不会显示更多信息。

于 2016-08-17T10:43:08.213 回答
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;

}
}
于 2013-09-10T11:56:12.087 回答
0

我认为您的映射指的User是实际上不在数据库中的表。. 所以检查你的hibernate的xml映射

于 2013-09-10T10:19:57.067 回答