扩展hibernate3让其支持MySQL的text类型
我们数据库设计一般是使用varchar(2024),一旦定好长度,这个字段默认就占用了这么多空间,为了节约数据库空间,我决定使用TEXT类型来保持数据,悲剧发生了,Hibernate不支持映射TEXT类型?
去网上翻了翻,好多人遇到这个问题,so决定记录下
我们只要继承hibernate的MySQL5InnoDBDialect类,我这MYSql用的是InnoDB,所以直接继承他了
上菜:
viewsourceprint?1publicclassMYSQLDialectextendsMySQL5InnoDBDialect{
2publicMYSQLDialect(){
3super();
4registerHibernateType(Types.DECIMAL,Hibernate.BIG_DECIMAL.getName());
5registerHibernateType(Types.LONGVARCHAR,Hibernate.TEXT.getName());
6registerFunction("group_concat",newStandardSQLFunction("group_concat",Hibernate.STRING));
7}
8}
然后我们修改下我们的hibernate配置文件或者是Spring的配置文件
viewsourceprint?1<propkey="hibernate.dialect">org.richin.support.orm.hibernate.MYSQLDialect</prop>
然后我们直接可以通过java的String类型来映射TEXT字段就OK了