1.org.hibernate.MappingException: No Dialect mapping for JDBC type: -9
org.hibernate.MappingException: No Dialect mapping for JDBC type: -9
原因:Hibernate框架的方言(Dialect )没有数据库中数据类型nvarchar的映射,只有varchar类型的映射。所以在启动时出现此异常。
解决方法:
方法一:
将数据库字段的nvarchar类型改为varchar类型。
方法二:
为了指定更加明确的返回值类型,我们可以使用addScalar()方法:
session.createSQLQuery("select * from person_inf")
.addScalar("name",StandardBasicTypes.STRING)
.addScalar("age",StandardBasicTypes.INT)
.list();
方法三:
org.hibernate.MappingException: No Dialect mapping for JDBC type: -9 org.hibernate.MappingException: No Dialect mapping for JDBC type: -15
笔者在做连接SQLServer2008数据库的时候遇到了上述的错误,解决办法如下:
package com.shihuan.core.framework.extend;
import java.sql.Types;
import org.hibernate.Hibernate;
import org.hibernate.dialect.SQLServer2008Dialect;
public class SqlServer2008Dialect extends SQLServer2008Dialect {
public SqlServer2008Dialect() {
super();
registerHibernateType(Types.CHAR, Hibernate.STRING.getName());
registerHibernateType(Types.NCHAR, Hibernate.STRING.getName());
registerHibernateType(Types.NVARCHAR, Hibernate.STRING.getName());
registerHibernateType(Types.LONGNVARCHAR, Hibernate.STRING.getName());
registerHibernateType(Types.DECIMAL, Hibernate.DOUBLE.getName());
}
}
java.sql.Types对应的值请参考http://blog.sina.com.cn/s/blog_4f925fc30102ep0v.html
java.sql.Types对应的sql server2008中的一些值:
public final static int BIT = -7;
public final static int TINYINT = -6;
public final static int SMALLINT = 5;
public final static int INTEGER = 4;
public final static int BIGINT = -5;
public final static int FLOAT = 6;
public final static int REAL = 7;
public final static int DOUBLE = 8;
public final static int NUMERIC = 2;
public final static int DECIMAL = 3;
public final static int CHAR = 1;
public final static int VARCHAR = 12;
public final static int LONGVARCHAR = -1;
public final static int DATE = 91;
public final static int TIME = 92;
public final static int TIMESTAMP = 93;
public final static int BINARY = -2;
public final static int VARBINARY = -3;
public final static int LONGVARBINARY = -4;
public final static int NULL = 0;
public final static int OTHER = 1111;
public final static int JAVA_OBJECT = 2000;
public final static int DISTINCT = 2001;
public final static int STRUCT = 2002;
public final static int ARRAY = 2003;
public final static int BLOB = 2004;
public final static int CLOB = 2005;
public final static int REF = 2006;
public final static int DATALINK = 70;
public final static int BOOLEAN = 16;
public final static int ROWID = -8;
public static final int NCHAR = -15;
public static final int NVARCHAR = -9;
public static final int LONGNVARCHAR = -16;
public static final int NCLOB = 2011;
public static final int SQLXML = 2009;
Hibernate SQL方言(hibernate.dialect):
|
RDBMS |
Dialect |
|
DB2 |
org.hibernate.dialect.DB2Dialect |
|
DB2 AS/400 |
org.hibernate.dialect.DB2400Dialect |
|
DB2 OS390 |
org.hibernate.dialect.DB2390Dialect |
|
PostgreSQL |
org.hibernate.dialect.PostgreSQLDialect |
|
MySQL5 |
org.hibernate.dialect.MySQL5Dialect |
|
MySQL5 with InnoDB |
org.hibernate.dialect.MySQL5InnoDBDialect |
|
MySQL with MyISAM |
org.hibernate.dialect.MySQLMyISAMDialect |
|
Oracle(any version) |
org.hibernate.dialect.OracleDialect |
|
Oracle 9i |
org.hibernate.dialect.Oracle9iDialect |
|
Oracle 10g |
org.hibernate.dialect.Oracle10gDialect |
|
Oracle 11g |
org.hibernate.dialect.Oracle10gDialect |
|
Sybase |
org.hibernate.dialect.SybaseASE15Dialect |
|
Sybase Anywhere |
org.hibernate.dialect.SybaseAnywhereDialect |
|
Microsoft SQL Server 2000 |
org.hibernate.dialect.SQLServerDialect |
|
Microsoft SQL Server 2005 |
org.hibernate.dialect.SQLServer2005Dialect |
|
Microsoft SQL Server 2008 |
org.hibernate.dialect.SQLServer2008Dialect |
|
SAP DB |
org.hibernate.dialect.SAPDBDialect |
|
Informix |
org.hibernate.dialect.InformixDialect |
|
HypersonicSQL |
org.hibernate.dialect.HSQLDialect |
|
H2 Database |
org.hibernate.dialect.H2Dialect |
|
Ingres |
org.hibernate.dialect.IngresDialect |
|
Progress |
org.hibernate.dialect.ProgressDialect |
|
Mckoi SQL |
org.hibernate.dialect.MckoiDialect |
|
Interbase |
org.hibernate.dialect.InterbaseDialect |
|
Pointbase |
org.hibernate.dialect.PointbaseDialect |
|
FrontBase |
org.hibernate.dialect.FrontbaseDialect |
|
Firebird |
org.hibernate.dialect.FirebirdDialect |
1.org.hibernate.MappingException: No Dialect mapping for JDBC type: -9的更多相关文章
- hibernate报错:org.hibernate.MappingException: No Dialect mapping for JDBC type: -1
解决方法:自定义一个Hibernate Dialect. package com.yourcompany.util ; import java.sql.Types; import org.hibern ...
- springboot org.hibernate.MappingException: No Dialect mapping for JDBC type: -9
参考 https://www.cnblogs.com/luxd/p/8316243.html https://www.cnblogs.com/s648667069/p/6478559.html @Co ...
- hibernate:MySQL No Dialect mapping for JDBC type: -1
出处:(hibernate中使用原生的sql语句,报如下错误:) MySQL No Dialect mapping for JDBC type: -1 代码: List list = session. ...
- 关于No Dialect mapping for JDBC type :-9 hibernate执行原生sql语句问题
转自博客http://blog.csdn.net/xd195666916/article/details/5419316,同时感谢博主 今天做了个用hibernate直接执行原生sql的查询,报错No ...
- No Dialect mapping for JDBC type: -1
MySQL数据库中有张表的字段是text,查询出来后对应的java类型是String,Dialect设置为org.hibernate.dialect.MySQLDialect 运行的时候报错:No D ...
- Hibernate映射数据库中longtext类型属性时报错No Dialect mapping for JDBC type: -1的解决方案
出现错误的原因是:hibernate中对于数据库的longtext数据类型不支持. 解决方案: 1.写个类集成方言,然后自己实现对longtext的支持 import java.sql.Types; ...
- Hibernate 数据库方言配置;no dialect mapping for jdbc type:-9;生僻字
最近因为生僻字在界面上显示为?: 主要原因是该字段在数据库中就是varchar类型,显示的就是?:如䶮(yan):现把varchar类型改为nvarchar类型:数据中能够正常显示: 但是Spring ...
- No Dialect mapping for JDBC type: -9
由于项目中使用的是hibernate 4.35版本和sqlserver 2008数据库.所以,自定义方言时,需要和老版本做区别: public class MySQLServerDialect ext ...
- jpa No Dialect mapping for JDBC type:-9
1.自定义个一个继承SQLServerDialect的dialect类 public class MySQLServer2008Dialect extends SQLServer2008Dialect ...
随机推荐
- jQuery 随滚动条滚动效果 (适用于内容页长文章)
直接入题! 当内容页比较长的时候,网站右侧一直是空白,不如放点有用的东西给用户看,最好不要放广告,因为那样很邪恶,你懂的. 好吧,昨天写了这个东西,jQuery滚动随动区块,代码如下: //侧栏随动 ...
- MVC3 类型“System.Web.Mvc.ModelClientValidationRule”同时存在
问题描述:在用vs生成MVC时若使用Internet应用程序为模版,项目建好后重新编译下无法通过,弹出错误: 解决方案:问题出来后,询问了身边很多人都是一头雾水,于是乎各种谷歌和百度,还好功夫不负有心 ...
- Epipe
http://www.cnblogs.com/carekee/articles/2904603.html http://blog.chinaunix.net/uid-10716167-id-30805 ...
- 利用代码改变世界 #AzureDev
毫无疑问,开发人员是 //build/ 2013 的主角.开发人员是我们这个行业的心脏和灵魂,我们很感谢他们所做的一切.在 Satya Nadella 走上讲台发表第 2 天的主题演讲之前,我们播放了 ...
- C++ 之再继续
1C++函数重载,内联函数(for程序性能优化),函数递归
- svo:一个半直接单目视觉里程计(长期更新)
源码:https://github.com/uzh-rpg/rpg_svo/tree/master/svo 视频:https://www.youtube.com/watch?v=2YnIMfw6bJY ...
- SVN—怎样安装SVNserver端软件
一.怎样安装1.4.5版本号的SVNserver端软件: a.下载1.4.5版本号的SVNserver端软件.下载地址:http://download.csdn.net/download ...
- google自定义站内搜索
ttps://www.google.com/cse/docs/cref.html?hl=zh-cn 重要表单参数: action 字段:您希望存储结果的网址(在该例中,我们使用 http://www. ...
- C# 数据库dataGridView刷新数据和主外键判断
本文主要讲诉在使用VS2012+SQL Server数据库做系统中,通常会遇到几个问题.使用dataGridView控件在修改.删除.插入数据后,怎样刷新数据显示操作后的结果.同时在对数据操作时通常会 ...
- WdatePicker日历控件用法
1. 跨无限级框架显示 不管你把日期控件放在哪里,你都不须要操心会被外层的iframe所遮挡进而影响客户体验,由于My97日期控件是能够跨无限级框架显示的 演示样例2-7 跨无限级框架演示 可无限跨越 ...