Java 类型上的MySQL 5.5.9和Hibernate表创建错误

Java 类型上的MySQL 5.5.9和Hibernate表创建错误,java,mysql,hibernate,spring,Java,Mysql,Hibernate,Spring,在尝试使用Hibernate+Spring重新创建我的数据库时,get生成的SQL会将“type=InnoDB”追加到每个创建语句的末尾。这似乎会导致MySQL5.5.9设置出现问题。它会产生以下错误: 您的SQL语法有错误;检查与MySQL服务器版本对应的手册,以了解第1行“type=InnoDB”附近使用的正确语法 如果我手动删除type=InnoBD并将create命令粘贴到MySQL中,它就可以正常工作 是否有其他人遇到此错误?这可能只是我需要更改的MySQL设置吗?我正在使用my-in

在尝试使用Hibernate+Spring重新创建我的数据库时,get生成的SQL会将
“type=InnoDB”
追加到每个创建语句的末尾。这似乎会导致MySQL5.5.9设置出现问题。它会产生以下错误:

您的SQL语法有错误;检查与MySQL服务器版本对应的手册,以了解第1行“type=InnoDB”附近使用的正确语法

如果我手动删除type=InnoBD并将create命令粘贴到MySQL中,它就可以正常工作

是否有其他人遇到此错误?这可能只是我需要更改的MySQL设置吗?我正在使用
my-innodb-heavy-4G.cnf
模板作为我的
/etc/my.cnf

我还知道MySQL已经不推荐使用
类型
语法,应该使用
引擎
(如果我手动更改create语句,就会这样做)。有没有办法在Hibernate中进行配置


感谢使用
mysql5innodbdialent
而不是
mysqlinnodbdialent
使用“mysql5innodbdialent”可以在5.1和5.5中使用。

添加mysql5innodbdialent后,我得到了相同的错误,但“Engine=InnoDB”。因此,我在属性文件中添加了mysql5innodbdialent,并从模型文件中删除了@Table注释。

类型已被弃用,并从最新版本中删除。在Grails中使用
engine=InnoDB

更改DataSource.groovy中的方言语句

例如:

使用“dialen=org.hibernate.dialen.mysql5innodbdialen”代替“dialen=org.hibernate.dialen.mysqlinnodbdialen”

我想你可以在你的项目中使用同样的方法


谢谢

没有meu caso、instalei o MySQL v5.6.20、e ao rodar minha aplicaão que usa Hibernate、teve colocar MySQL5 Innodb方言

Segue o trecho(persistence.xml)da标记属性:

<properties>
        <property name="javax.persistence.jdbc.driver" value="com.mysql.jdbc.Driver" />
        <property name="javax.persistence.jdbc.url" value="jdbc:mysql://localhost/livrariadb" />
        <property name="javax.persistence.jdbc.user" value="root" />
        <property name="javax.persistence.jdbc.password" value="****" />

        <property name="hibernate.hbm2ddl.auto" value="update" />
        <property name="hibernate.show_sql" value="false" />
        <property name="hibernate.dialect" value="org.hibernate.dialect.MySQL5InnoDBDialect" />
</properties>


以防万一,如果您已更改为org.hibernate.dialogue.mysql5innodbdialogue(例如,在MariaDB上),并且仍然收到错误,请检查表名(或查询中的任何其他名称)是否不是保留字或现有对象名(例如“position”)。

有用的答案,但是mysqlinnodbdialent有什么问题。@yogeshprajapati
mysqlinnodbdialent
是针对MySQL 4.x的。这不是StackOverflow的葡萄牙语版本。