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

本文讲述了在将Java传统项目从Oracle转向SQLServer数据库时,遇到的Hibernate方言设置问题。通过自定义SqlServerDialectMy并注册缺失的列类型,成功解决了项目运行报错。重点在于配置Hibernate dialect和代码调整。
摘要由CSDN通过智能技术生成

背景:

java传统项目,一直使用oracle数据库,近期有个项目要求SQL Server数据库,运行项目报错

原因

Hibernate方言设置的问题

上面是SQLServerDialect源码,从源码可以发现没有注册列类型为-9的代码;

解决办法

自己注册,话不多说,上代码

public class SqlServerDialectMy extends SQLServerDialect{
	public SqlServerDialectMy() {
		super();
		registerHibernateType(-9, "string");
		
	}
}

Hibernate配置文件

其中<prop key="hibernate.dialect">${hibernate.dialect}</prop>

改为

<prop key="hibernate.dialect">com.util.SqlServerDialectMy</prop> 

重启项目,完事

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值