Hibernate无法在数据库中创建表。

时间:2013-11-21 01:08:25

标签: hibernate hibernate-mapping

当我执行session.save(Object)时,Hibernate会产生很多错误。我已经在尽可能多的论坛上发布了这个问题

第一个错误:com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Table 'entity.listOfcases' doesn't exist

然后我还看到了一个错误:

check the manual that corresponds to your MySQL server version for the right syntax to use near 'type=InnoDB' at line 1

我在我的hibernate映射文件中使用了“update”和“create”,但仍未在数据库中自动创建表。

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

在上面使用它们。

第三个错误:"org.hibernate.exception.SQLGrammarException: could not fetch initial value for increment generator"

我检查了所有的getter setter和所有POJO类。一切都好。当我手动创建表时,一切都很好,只是当我删除这些表并尝试自动创建它时,它不起作用。

2 个答案:

答案 0 :(得分:0)

在您的Hibernate映射文件中,即hibernate.cfg.xml进行以下更改:

<property name="hibernate.dialect">org.hibernate.dialect.MySQL5InnoDBDialect</property>
而不是现在所说的。我假设:

<property name="hibernate.dialect">org.hibernate.dialect.MySQLInnoDBDialect</property>

如果你说你已经检查了其余的代码,那肯定会处理所有的错误。

答案 1 :(得分:0)

对我来说,当我从 org.hibernate.dialect.MySQLDialect 至  org.hibernate.dialect.MySQL57Dialect