我就是醉了,是我太菜,还是这个hibernate连mysql语法都不会拼接呢?

李嘉图 发布于 2014/11/14 22:50
阅读 885
收藏 1

软件背景:

数据库:MySQL Server 5.6

myeclipse:MyEclipse Professional 2014

hibernate:hibernate-release-4.3.6.Final

这个我选数据库方言的时候,选的是

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

然后它创建数据表的时候,总是

ERROR: HHH000388: Unsuccessful: create table student (id bigint not null auto_increment, name varchar(255), gender varchar(255), DATE datetime, primary key (id)) type=InnoDB

然后失败,后来我就发现了,最后的type=InnoDB,其实应该是ENGINE=InnoDB才对,这个到底为什么?一个全世界都在用的持久化框架,难道这个数据库语法都不知道?

加载中
1
hello123
hello123
hibernate.dialect=org.hibernate.dialect.MySQL5InnoDBDialect
李嘉图
李嘉图
回复 @hello123 : 哈哈,就是这样,看来还是我太菜了。
hello123
hello123
回复 @李嘉图 : 方言错了,mysql5.1之后,使用org.hibernate.dialect.MySQL5InnoDBDialect,而不是org.hibernate.dialect.MySQLInnoDBDialect
李嘉图
李嘉图
?
0
eechen
eechen
type=InnoDB应该是MySQL5.0时代的写法,5.5和5.6要改成ENGINE=InnoDB这种写法.
李嘉图
李嘉图
这个hibernate截至目前最新的版本是4.3.7,我这个版本是4.3.6.到现在为止,还不支持mysql5.6,真是佩服了。
0
李嘉图
李嘉图
就是把最后的type=InnoDB,改为ENGINE=InnoDB,最后才能出来正确的结果,表的创建语句才能执行成功。
0
李嘉图
李嘉图

引用来自“hello123”的评论

hibernate.dialect=org.hibernate.dialect.MySQL5InnoDBDialect
就是要加个5
0
南湖船老大
南湖船老大
哈哈哈,看来楼主又是上了网上文章的当啊
返回顶部
顶部