Spring + Hibernate +MySQL5.2+ 自动建表的有关问题
Spring + Hibernate +MySQL5.2+ 自动建表的问题配置好项目,启动tomcat,自动建表的时候,出现错误,提示 type
Spring + Hibernate +MySQL5.2+ 自动建表的问题
配置好项目,启动tomcat,
自动建表的时候,出现错误,提示 type=MyISAM 错误。
上网搜索,type=MyISAM只支持到mysql5.1。之后高版本要用Engine=MyISAM
但是我在hibernate包中的
org.hibernate.dialect.MySQLMyISAMDialect
类中看见,hibernate在建表时会自动加上 type=MyISAM
public class MySQLMyISAMDialect extends MySQLDialect
{
public MySQLMyISAMDialect()
{
}
public String getTableTypeString()
{
return " type=MyISAM";
}
public boolean dropConstraints()
{
return false;
}
}
这么一来,假如我工程中用的是5.2以上版本的mysql,那我要怎么配置才能让
hibernate懂得自动建表不出错呢?
[解决办法]return " type=MyISAM";是不是type前面多了个空格引起的?
[解决办法]那就只有升级mysql到5.5把
[解决办法]你要不直接用MySQLDialect,把表的存储引擎默认设置为MYISAM,
要不就自己写个
public class MyMySQLMyISAMDialect extends MySQL5Dialect {
public String getTableTypeString() {
return " ENGINE=MyISAM";
}
public boolean dropConstraints() {
return false;
}
}
然后dialect配成这个。
[解决办法]在hibernate.cgf.xml文件中配置就可以了。