初触hibernate01--MYSQL建表时type=InnoDB和Engine=InnoDB注意点

Posted 掬一束月光

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了初触hibernate01--MYSQL建表时type=InnoDB和Engine=InnoDB注意点相关的知识,希望对你有一定的参考价值。

    第一次运行程序时,将Hibernte中的hibernate.hbm2ddl.auto设置成create(或者是update),让Hibernate帮助自动建表,但不成功,报了如下信息:

    You have an error in your SQL syntax; check the manual that corresponds to your mysql server version for the right syntax to use near ‘type=InnoDB‘ at line 1

    我很纳闷,为什么之前没有这样的问题呢?难道是建表语句语法有误?对比后,似乎不是。后来再仔细阅读报错信息,目光定位在“MySQL server version for the right syntax ”!!

    后来,网上查找一番,发现是因为type=InnoDB在5.0以前是可以使用的,但5.1之后就不行了。如果我们把type=InnoDB改为engine=InnoDB就不会有这个问题。但是,我想使用Hibernate,自动帮我建表,怎么办呢。这就与我们指定的数据库方言(dialect)有关了。

    之前我的配置是:
    <prop key="hibernate.dialect">org.hibernate.dialect.MySQLInnoDBDialect /> 
     现在改为
    <prop key="hibernate.dialect">org.hibernate.dialect.MySQL5InnoDBDialect />  
  
     好了,这样问题就解决了。总结下:
    hibernate中,对于mysql version5.1~5.5,都是‘MySQL5InnoDBDialect’  !!

-----------------------------------------------------------

现在的api用MySQLDialect就可以了

 

原文章地址:http://blog.itpub.net/29900383/viewspace-1407348/







以上是关于初触hibernate01--MYSQL建表时type=InnoDB和Engine=InnoDB注意点的主要内容,如果未能解决你的问题,请参考以下文章

Mysql 建表时设置多个主键

在 postgres 8.1 中创建表时出错

在 PostgreSQL 中创建表时向列添加注释?

在mysql集群中创建表时出错

MySql建表时日期类型的出理

在 sqlite3 中创建表时出错