您的位置:首页 > 移动开发

MySQL错误(org.hibernate.MappingException: No Dialect mapping for JDBC type: -4) 解决方案

2014-06-05 11:35 387 查看
今天将开发完毕的项目发布到服务器上有,出现如下错误:

org.hibernate.MappingException: No Dialect mapping for JDBC type: -4

后经过分析,是因为服务器上的mysql版本较低(为5.1.66),本地开发版本为5.5的则没有这个问题,下面直接贴出解决方法:

1、增加Java类

import java.sql.Types;

import org.hibernate.Hibernate;
import org.hibernate.dialect.MySQL5InnoDBDialect;

public class MySQL5InnoDBDialectEx extends MySQL5InnoDBDialect {
	
	public MySQL5InnoDBDialectEx() {  
        super();  
        registerHibernateType(Types.LONGVARCHAR, 65535, "text");
        registerHibernateType(Types.DECIMAL, Hibernate.BIG_DECIMAL.getName());
        registerHibernateType(-1, Hibernate.STRING.getName());
        registerHibernateType(Types.LONGVARBINARY, Hibernate.BLOB.getName());//这一行解决No Dialect mapping for JDBC type: -4问题
    }
	
}
注:前面3行是也是解决数据类型问题的,第四条是解决我们今天所说的 No Dialect mapping for JDBC type: -4 问题。

2、修改hibernate配置文件

<property name="hibernateProperties">
			<value>
				hibernate.dialect=com.dialect.MySQL5InnoDBDialectEx
				hibernate.show_sql=false
				hibernate.format_sql=true
				hibernate.query.substitutions=true 1, false 0
				hibernate.jdbc.batch_size=20
				hibernate.generate_statistics=true
				hibernate.cache.provider_class=org.hibernate.cache.EhCacheProvider
				hibernate.cache.provider_configuration_file_resource_path=/ehcache.xml
				hibernate.query.factory_class=org.hibernate.hql.ast.ASTQueryTranslatorFactory
				hibernate.connection.autocommit=false
			</value>
		</property>
注:第一行引用我们自定义扩展的Java类MySQL5InnoDBDialectEx,后面的配置为其他配置,与本文章所要解决的问题无关。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐