当前位置: 首页 > 面试题库 >

hibernate表不存在错误

冯驰
2023-03-14
问题内容

在配置hibernate.cfg.xml中,我添加 <property name="hibernate.hbm2ddl.auto">create</property>
Hibernate并在运行应用程序时自动创建表。但是,我通过运行drop table sql从数据库中手动删除该表。然后再次运行hibernate应用程序。出现异常

引起原因:com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException:表’test.person’不存在

解决该问题的唯一方法是重新启动Mysql数据库。谁能为我解释这个问题?

这是我的hibernate.cfg.xml

<hibernate-configuration>  
<session-factory>  
    <property name="hibernate.connection.driver_class">  
        com.mysql.jdbc.Driver  
    </property>  
    <property name="hibernate.connection.url">  
        jdbc:mysql://localhost/test
    </property>  
    <property name="connection.username">root</property>  
    <property name="connection.password">root</property>  
    <property name="dialect">  
        org.hibernate.dialect.MySQLDialect  
    </property>


    <!-- Drop and re-create the database schema on startup -->
    <property name="hibernate.hbm2ddl.auto">create</property>

    <!-- Enable Hibernate's automatic session context management -->
    <property name="current_session_context_class">thread</property>

    <!-- Disable the second-level cache  -->
    <property name="cache.provider_class">org.hibernate.cache.NoCacheProvider</property>

    <!-- Echo all executed SQL to stdout -->
    <property name="show_sql">true</property>

    <!-- Mapping files -->  
    <mapping resource="com/mapping/Event.hbm.xml" />  
    <mapping resource="com/mapping/Person.hbm.xml"/>
</session-factory>

谢谢


问题答案:

我不相信使用create会更新就地架构以重新添加您删除的表。尝试:

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

如果不存在,则创建一个架构,并尝试修改现有的架构以匹配您定义的映射。



 类似资料:
  • 当我测试我的项目时,数据库中只创建了4个表,但没有创建其他表,我不知道为什么。创建了表、、和,但没有创建表和我没有放在本例中的其他表。有一些属性我忘记了?感谢您的帮助。以下是一些文件: hibernate.cfg.xml Position.hbm.xml 拒绝位置.hbm.xml 通知.hbm.xml Demande.java Demande.hbm.xml User.java 用户.hbm.xm

  • 我有一个第三方jar,可以容纳所有实体和映射。我目前正在经典的Spring-MVC应用程序中成功使用此jar,但现在我正在尝试在Spring-Boot应用程序中使用它。(1.5.7.发布) 我有这个用于我的应用程序.java: 由于它是第三方,我也必须进行会话扫描,所以我在我的@Configuration类中有这个: 在我的application.properties中: 我收到此错误: 现在表名

  • 我使用的是Hibernate 4.3.6,我尝试通过将@Audited注释添加到我的一个@Entity类中来使用Envers功能。(envers jar-hibernate-envers-4.3.6.Final.jar-位于我的CLASSPATH上。) 当我运行没有@Audited注释的代码时,我得到一个org . hibernate . exception . sqlgrammarexcepti

  • 当我试图在数据库中保存角色时,会出现“springit.role表不存在”。 我没有在我的数据库中创建一个名为“role”的表,因为我正在学习的课程中的老师没有创建一个表。 在DatabaseLoader类方法中调用“AddUserSandRoles()”时显示的异常 那么,问题出在哪里呢? role.java user.java DatabaseLoader.java schema.sql 我是

  • Employee.java

  • 问题内容: 我尝试在spring版本的项目中将hibernate模式从4升级到5 。升级之后,调用更新方法时,在堆栈跟踪中发现以下错误。 我用注解更改了自动递增的ID 错误仍然存​​在。 问题答案: 您需要设置Hibernate5.x ..参见并链接。 对于较早版本的hibernate 4.x: