识字粗堪供赋役,不须辛苦慕公卿。这篇文章主要讲述Hibernate 数据库方言配置;no dialect mapping for jdbc type:-9;生僻字相关的知识,希望能为你提供帮助。
最近因为生僻字在界面上显示为?;
主要原因是该字段在数据库中就是varchar类型,显示的就是?;如?(yan);现把varchar类型改为nvarchar类型;数据中能够正常显示;
但是SpringBoot程序jpa执行原生的存储过程的会报如下错误;
文章图片
经验证,是因为Hibernate数据库方言配置问题;增加数据库方言配置
文章图片
【Hibernate 数据库方言配置;no dialect mapping for jdbc type:-9;生僻字】,方言需要重写:
package com.winning.thread;
import org.hibernate.dialect.SQLServerDialect;
import org.hibernate.type.StandardBasicTypes;
import java.sql.Types;
public class MyDialect extends SQLServerDialect {
public MyDialect() {
super();
registerHibernateType(Types.NCHAR, StandardBasicTypes.CHARACTER.getName());
registerHibernateType(Types.NCHAR, 1, StandardBasicTypes.CHARACTER.getName());
registerHibernateType(Types.NCHAR, 255, StandardBasicTypes.STRING.getName());
registerHibernateType(Types.NVARCHAR, StandardBasicTypes.STRING.getName());
registerHibernateType(Types.LONGNVARCHAR, StandardBasicTypes.TEXT.getName());
registerHibernateType(Types.NCLOB, StandardBasicTypes.CLOB.getName());
}
}
能够正常显示!
参考如下两篇文章解决,感谢大神:
https://stackoverflow.com/questions/27039300/jpa-sql-server-no-dialect-mapping-for-jdbc-type-9
https://stackoverflow.com/questions/47270883/spring-boot-wont-load-user-defined-dialect
推荐阅读
- Java Service Wrapper 浅谈
- mac通过chrome调试安卓
- android -------- Data Binding的使用Observable
- cocos2d-x学习之路——分析AppDelegate和HelloWorldScene文件
- POJ3321 - Apple Tree DFS序 + 线段树或树状数组
- 关于Android studio的安装和配置问题
- cocos构建的android项目的返回键相应
- 通俗易懂讲解happens-before原则
- Edge-assisted Tra?ic Engineering and applications in the IoT