使用hibernate自動建立Mysql表失敗原因及解決方法
阿新 • • 發佈:2018-11-03
原因:
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>