配置好项目,启动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懂得自动建表不出错呢?

解决方案 »

  1.   

    return " type=MyISAM";是不是type前面多了个空格引起的?
      

  2.   

    不是的,这个是hibernate包里面的源代码,不是我写的。
      

  3.   

    不是的,这个是hibernate包里面的源代码,不是我写的。
    那就只有升级mysql到5.5把
      

  4.   

    你要不直接用MySQLDialect,把表的存储引擎默认设置为MYISAM,
    要不就自己写个
    public class MyMySQLMyISAMDialect extends MySQL5Dialect {
    public String getTableTypeString() {
    return " ENGINE=MyISAM";
    }
    public boolean dropConstraints() {
    return false;
    }
    }
    然后dialect配成这个。
      

  5.   

    在hibernate.cgf.xml文件中配置就可以了。