原因:
hibernate里的dialect和Mysql的版本不匹配,SQL语句里的type=“****”使用在MySQL5.0之前,5.0之后就要是使用engine=“****”。
解决:
修改hibernate.cfg.xml文件
MySql5.0之前的配置
<property name="dialect">org.hibernate.dialect.MySQLDialect</property>
MySql5.0之后的配置
<property name="dialect">org.hibernate.dialect.MySQL5Dialect</property>
使用了dialect.MySQL,生成的建表语句为:
Hibernate:
create table Student (
id integer not null,
name varchar(255),
age integer,
primary key (id)
) type=MyISAM
使用了dialect.MySQL5之后,生成的建表语句为:
Hibernate:
create table Teacher (
id integer not null,
age integer not null,
name varchar(255),
qq integer not null,
primary key (id)
) engine=MyISAM
总而言之就一句话
mysql5.0之前 <property name="dialect">org.hibernate.dialect.MySQLDialect</property>
mysql5.0之后 <property name="dialect">org.hibernate.dialect.MySQL5Dialect</property>