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

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
简介:

今天将开发完毕的项目发布到服务器上有,出现如下错误:

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,后面的配置为其他配置,与本文章所要解决的问题无关。







相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
27天前
|
关系型数据库 MySQL Java
【IDEA】java后台操作mysql数据库驱动常见错误解决方案
【IDEA】java后台操作mysql数据库驱动常见错误解决方案
50 0
|
3月前
|
关系型数据库 MySQL 索引
MySQL in 太多的解决方案
MySQL in 太多的解决方案
342 0
|
3月前
|
关系型数据库 MySQL 数据库
RDS MySQL灾备服务协同解决方案构建问题之数据库备份数据的云上云下迁移如何解决
RDS MySQL灾备服务协同解决方案构建问题之数据库备份数据的云上云下迁移如何解决
|
8天前
|
关系型数据库 MySQL 数据库
一个 MySQL 数据库死锁的案例和解决方案
本文介绍了一个 MySQL 数据库死锁的案例和解决方案。
16 3
|
16天前
|
Java 关系型数据库 MySQL
mysql5.7 jdbc驱动
遵循上述步骤,即可在Java项目中高效地集成MySQL 5.7 JDBC驱动,实现数据库的访问与管理。
32 1
|
2月前
|
存储 Java 关系型数据库
JPA不识别MySQL枚举类型的解决方案
在JPA中处理MySQL的枚举类型,需要在实体类与数据库之间进行适当的转换。可以选择使用 `@Enumerated`注解、实现自定义的转换器,或者使用原生SQL查询来解决JPA不直接支持MySQL枚举类型的问题。选择最佳方案时,应考虑项目的具体需求和架构。通过正确的映射和转换,可以确保JPA与MySQL数据库间高效且安全的数据交互。
54 6
|
26天前
|
SQL 分布式计算 关系型数据库
Hadoop-24 Sqoop迁移 MySQL到Hive 与 Hive到MySQL SQL生成数据 HDFS集群 Sqoop import jdbc ETL MapReduce
Hadoop-24 Sqoop迁移 MySQL到Hive 与 Hive到MySQL SQL生成数据 HDFS集群 Sqoop import jdbc ETL MapReduce
68 0
|
26天前
|
SQL 分布式计算 关系型数据库
Hadoop-23 Sqoop 数据MySQL到HDFS(部分) SQL生成数据 HDFS集群 Sqoop import jdbc ETL MapReduce
Hadoop-23 Sqoop 数据MySQL到HDFS(部分) SQL生成数据 HDFS集群 Sqoop import jdbc ETL MapReduce
33 0
|
26天前
|
SQL 分布式计算 关系型数据库
Hadoop-22 Sqoop 数据MySQL到HDFS(全量) SQL生成数据 HDFS集群 Sqoop import jdbc ETL MapReduce
Hadoop-22 Sqoop 数据MySQL到HDFS(全量) SQL生成数据 HDFS集群 Sqoop import jdbc ETL MapReduce
41 0
|
3月前
|
SQL druid Java
Java数据库部分(MySQL+JDBC)(二、JDBC超详细学习笔记)(下)
Java数据库部分(MySQL+JDBC)(二、JDBC超详细学习笔记)
53 3
Java数据库部分(MySQL+JDBC)(二、JDBC超详细学习笔记)(下)

热门文章

最新文章