配置好项目,启动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文件中配置就可以了。