码迷,mamicode.com
首页 > 移动开发 > 详细

Hibernate 数据库方言配置;no dialect mapping for jdbc type:-9;生僻字

时间:2018-09-13 10:24:27      阅读:631      评论:0      收藏:0      [点我收藏+]

标签:overflow   thread   界面   style   ext   大神   standard   lse   原因   

最近因为生僻字在界面上显示为?;

主要原因是该字段在数据库中就是varchar类型,显示的就是?;如?(yan);现把varchar类型改为nvarchar类型;数据中能够正常显示;

但是SpringBoot程序jpa执行原生的存储过程的会报如下错误;

技术分享图片

经验证,是因为Hibernate数据库方言配置问题;增加数据库方言配置

技术分享图片

,方言需要重写:

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

Hibernate 数据库方言配置;no dialect mapping for jdbc type:-9;生僻字

标签:overflow   thread   界面   style   ext   大神   standard   lse   原因   

原文地址:https://www.cnblogs.com/llywy/p/9638500.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!