Hibernate 數據庫方言配置;no dialect mapping for jdbc type:-9;生僻字


最近因為生僻字在界面上顯示為?;

主要原因是該字段在數據庫中就是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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM