首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > Java Web开发 >

Spring + Hibernate +MySQL5.2+ 自动建表的有关问题

2013-09-18 
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前面多了个空格引起的?
[解决办法]
引用:
Quote: 引用:

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

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

那就只有升级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文件中配置就可以了。

热点排行